有时,我们需要获取设备上的 应用列表,
例如获取 所有已安装的 或者 能够显示在 桌面上的APK.
基于这些列表,我们可以做一些管理功能, 例如权限展示等的.
1. 获取所有已安装的应用
简单起见, 仅返回每个应用的包名
//{@ - 获取所有安装的APK (MATCH_UNINSTALLED_PACKAGES 表示未卸载的APK, 包括APK已被删除但是保留数据的)
// 需要获取所有apk 添加permission <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
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;
}
//@}
这里需要注意, 在AndroidManifest 需要加上权限声明,否则只能获取部分应用.
<uses