android获取已安装包名需要的权限,Android-读取已安装应用列表

本文介绍了在Android中获取已安装应用包名所需的权限及完整获取应用列表的方法。通过adb指令获取包名,再结合PackageManager获取应用的实际名字。提供了包含系统与非系统应用的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

title: Android-读取已安装应用列表

date: 2019-12-02 11:54:53

categories:

- Android

tags:

- App

本文将通过读取已安装应用列表,如何获取应用列表,和为什么要获取已安装应用列表展开。

Android 读取已安装应用列表需要申请权限吗?

Android 如何完整的获取到用户已安装应用列表

为什么安卓的APP都要读取手机中已安装的应用列表

结合上述三篇文章,选择已下折中方案:

思路:

1.使用adb指令获取包名

private void runCommand() {

try {

Process process = Runtime.getRuntime().exec("adb shell pm list package -3");

BufferedReader bis = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line = null;

while ((line = bis.readLine()) != null) {

System.out.println("runCommand, line=" + line);

}

} catch (IOException e) {

System.out.println("runCommand,e=" + e);

}

}

2.根据包名使用PackageManager获取app的实际名字

private void getAppList() {

PackageManager pm = getPackageManager();

// Return a List of all packages that are installed on the device.

List packages = pm.getInstalledPackages(0);

for (PackageInfo packageInfo : packages) {

// 判断系统/非系统应用

if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) // 非系统应用

{

System.out.println("getAppList, packageInfo=" + packageInfo.packageName);

} else {

// 系统应用

}

}

}

3.结合使用

private void runCommand() {

try {

PackageManager pm = getPackageManager();

Process process = Runtime.getRuntime().exec("adb shell pm list package -3");

BufferedReader bis = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line = null;

while ((line = bis.readLine()) != null) {

PackageInfo packageInfo = App.instance.getPackageManager().getPackageInfo(line.replace("package:", ""), PackageManager.GET_GIDS);

System.out.println("runCommand, line=" + line+"packageInfo.packageName" + ":" + packageInfo.applicationInfo.loadLabel(pm).toString());

}

} catch (IOException e) {

System.out.println("runCommand,e=" + e);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值