如何获得可靠的卸载软件包列表android

时间:2014-12-19 12:26:20

标签: android

我使用带有GET_UNINSTALLED_PACKAGES标志的packagemanager获取包列表,

  PackageManager pm = getPackageManager();

    List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);

但是因为它返回:“关于所有具有数据目录的应用程序(甚至是未安装的应用程序)的信息。”我无法获得以前卸载的软件包的可靠列表,包括未留下数据目录的应用程序

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

免责声明:我没有尝试过这个解决方案,但它可能有所帮助(需要Android 5)

使用android 5,有这个新API:UsageStatsManager使用此方法:

usageStatsManager.queryAndAggregateUsageStats(startTime,endTime)

返回Map,其中键是包名称(值是使用情况统计信息)。希望这包括已卸载的应用程序(但我不确定!)。当然,您不会获得AppInfo(仅包名称)

另请注意此important remark所需的权限:

  

注意:此API需要android.permission.PACKAGE_USAGE_STATS权限,这是系统级权限,不会授予第三方应用。但是,声明权限意味着有意使用API​​,设备用户可以通过“设置”应用程序授予权限。