8***@qq.com
8***@qq.com
  • 发布:2019-05-09 10:40
  • 更新:2023-12-06 20:10
  • 阅读:5717

安卓获取已安装APP列表

分类:uni-app

最近使用uniapp需要获取安卓手机已安装的应用列表
直接上代码

getAppList(){  
	plus.android.importClass('java.util.ArrayList');  
	plus.android.importClass('android.content.pm.PackageInfo');    
	plus.android.importClass('android.content.pm.PackageManager');  
	var ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');  
	var MainActivity = plus.android.runtimeMainActivity();    
	var PackageManager = MainActivity.getPackageManager();    
	var pinfo = plus.android.invoke(PackageManager, 'getInstalledPackages', 0)    
	if (pinfo != null) {  
		var apklist = []  
		for (var i = 0; i < pinfo.size(); i++) {    
			//PackageInfo{4b45699f9d  com.tencent.mobileqq}    
			var pkginfo = pinfo.get(i);  
			var issysapk = ((pkginfo.plusGetAttribute("applicationInfo").plusGetAttribute("flags") & ApplicationInfo.FLAG_SYSTEM) != 0) ? true : false  
			if(issysapk == false){  
				const apkinfo = {  
					appName:pkginfo.plusGetAttribute("applicationInfo").loadLabel(PackageManager).toString(),  
					packageName:pkginfo.plusGetAttribute("packageName"),  
					versionName:pkginfo.plusGetAttribute("versionName"),  
					versionCode:pkginfo.plusGetAttribute("versionCode")  
				}  
				apklist.push(apkinfo)  
			}  
			  
		}  
		//this.appList = apklist  
		//打印出所有的APP名称,包名,版本  
		console.log(JSON.stringify(apklist))  
	}  
}

直接调用此方法即可。

4 关注 分享
l***@qq.com DCloud_iOS_XHY j***@163.com DCloud_UNI_OttoJi

要回复文章请先登录注册

c***@126.com

c***@126.com

需要开什么权限嘛?为什么我打包之后获取不到啊
2023-12-06 20:10
摩西向前

摩西向前

感谢楼主
2023-11-28 15:06
摩西向前

摩西向前

```
//uts的代码 反射还是存在效率问题
export function getPackage() {
let context = UTSAndroid.getUniActivity()!
try {
let packageManager = context.getPackageManager()
let packages = packageManager.getInstalledApplications(0);
packages.forEach(a => {
console.log('包名:', a.packageName)
console.log('App名称:', packageManager.getApplicationLabel(a).toString())
let packageInfo = packageManager.getPackageInfo(a.packageName, 0);
console.log('App版本:', packageInfo.versionCode)
})
}
catch (err) {
console.log("error", err.message)
}
}

```
2023-11-28 15:01
j***@163.com

j***@163.com

你好 请问有没有ios的
2023-11-28 10:45
8***@qq.com

8***@qq.com

值得学习。
2021-05-24 00:44
3***@qq.com

3***@qq.com

获取速度太慢了
2021-02-01 21:43
4***@qq.com

4***@qq.com

回复 6***@qq.com :
具体代码在我问答里。希望能帮助你
2020-10-28 17:14
6***@qq.com

6***@qq.com

回复 4***@qq.com :
请问一下图表怎么转换成base64
2020-07-31 19:51
4***@qq.com

4***@qq.com

回复 4***@qq.com :
已找到,appIco:pkginfo.plusGetAttribute("applicationInfo").loadIcon(PackageManager)
2019-10-29 10:24
4***@qq.com

4***@qq.com

请问下,这个图标如何获取?
2019-10-29 10:13