AppUtils
#28 · closed · 2 comments
View on GitHub ↗
建议增加代码【获取所有已安装的应用】和【获取所有 能够显示在 桌面上的 应用】
获取所有已安装的应用
`private List<String> getInstalledPackages(Context context) {
List<String> installedPackageList = new ArrayList<>();
List<PackageInfo> installedPackageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.MATCH_UNINSTALLED_PACKAGES);
for (PackageInfo packageInfo: installedPackageInfoList) {
installedPackageList.add(packageInfo.packageName);
}
return installedPackageList;
}
`
获取所有 能够显示在 桌面上的 应用
`private List<String> getAllLauncherIconPackages(Context context) {
List<String> launcherIconPackageList = new ArrayList<>();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//set MATCH_ALL to prevent any filtering of the results
List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_ALL);
for (ResolveInfo info: resolveInfos) {
launcherIconPackageList.add(info.activityInfo.packageName);
}
return launcherIconPackageList;
}
`
Comments
* **APP 信息获取工具类 ->** [AppInfoUtils.java](https://github.com/afkT/DevUtils/blob/master/lib/DevApp/src/main/java/dev/utils/app/info/AppInfoUtils.java)
| 方法 | 注释 |
| :- | :- |
| getPackageInfoToFile | 通过 APK 路径 初始化 PackageInfo |
| getPackageInfoToPath | 通过 APK 路径 初始化 PackageInfo |
| getPackageInfo | 获取当前应用 PackageInfo |
| getAppInfoBeanToFile | 通过 APK 路径 获取 AppInfoBean |
| getAppInfoBeanToPath | 通过 APK 路径 获取 AppInfoBean |
| getAppInfoBean | 获取当前应用 AppInfoBean |
| getApkInfoItem | 获取 APK 详细信息 |
| getAppInfoItem | 获取 APP 详细信息 |
| getAppLists | 获取全部 APP 列表 |
| getAppPermissionToList | 获取 APP 注册的权限 |
| getAppPermissionToSet | 获取 APP 注册的权限 |
| getAppPermission | 获取 APP 注册的权限 |
| printAppPermission | 打印 APP 注册的权限 |
第一个是有的,AppInfoUtils.getAppLists()、AppInfoUtils.getAppLists(AppInfoBean.AppType.USER)
第二个我找个时间加一下,最近再忙另外的开源项目,准备那个项目提交后,统一把 DevUtils 库都适配到最新然后发个版本。
第二个方法添加了 [AppInfoUtils#getAllLauncherIconPackageNames](https://github.com/afkT/DevUtils/blob/master/lib/DevApp/src/main/java/dev/utils/app/info/AppInfoUtils.java#L389) 等我发个版本就可以用了