我使用带有GET_UNINSTALLED_PACKAGES
标志的packagemanager获取包列表,
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
但是因为它返回:“关于所有具有数据目录的应用程序(甚至是未安装的应用程序)的信息。”我无法获得以前卸载的软件包的可靠列表,包括未留下数据目录的应用程序。
有没有办法实现这个目标?
答案 0 :(得分:0)
免责声明:我没有尝试过这个解决方案,但它可能有所帮助(需要Android 5)
使用android 5,有这个新API:UsageStatsManager使用此方法:
usageStatsManager.queryAndAggregateUsageStats(startTime,endTime)
返回Map
,其中键是包名称(值是使用情况统计信息)。希望这包括已卸载的应用程序(但我不确定!)。当然,您不会获得AppInfo
(仅包名称)
另请注意此important remark所需的权限:
注意:此API需要android.permission.PACKAGE_USAGE_STATS权限,这是系统级权限,不会授予第三方应用。但是,声明权限意味着有意使用API,设备用户可以通过“设置”应用程序授予权限。