android - 未安装的应用程序列表查询返回已安装应用程序列表的形式 PackageManager

标签 android package-managers

我正在尝试使用 Pacakge 管理器从设备中获取已卸载应用程序的列表。 但是,代码返回所有已安装应用程序的列表。

// get a list of all installed apps
        List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);



        for(ApplicationInfo unisntalledPackage : packages){


            // itearte hough apps vi acativity manager and get details

            PackageInfo pkginfo=null;
            try {
                pkginfo = pm.getPackageInfo(unisntalledPackage.processName,
                        PackageManager.GET_UNINSTALLED_PACKAGES);
            } catch (NameNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

            if (pkginfo !=null && !isSystemPackage(pkginfo)) {

            try{ .....//get info form package object

感谢任何意见。

最佳答案

使用 GET_UNINSTALLED_PACKAGES 返回“关于所有具有数据目录的应用程序(甚至是未安装的应用程序)的信息。”所以代码完全符合预期 - 您获得所有已安装的包,另外任何已卸载但用户选择保留数据的包。

要仅获取已卸载的软件包,您必须遍历现有列表,仅选择已卸载的软件包。

关于android - 未安装的应用程序列表查询返回已安装应用程序列表的形式 PackageManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26487255/

相关文章:

java - 如何在后按时执行某些操作,而不是仅针对一个 fragment 从 backStack 弹出,并且仍然能够对其他 fragment 正常工作?

java - 来自 Intent 服务的 Realm 同步写入

java - 如何自动关闭自定义对话框

java - Android - 除了正常的 SSL 证书外,还验证自签名证书

node.js - 即使我有过时的软件包,npm update -g 也不做任何事情

linux - 如何在 Tcl 中安装软件包?

去不解决 GitHub 包导入

java - 使用 driver.quit() 并行运行 Appium 测试时会导致其他测试失败

python - 按主题搜索 PyPI

python - 如何像 npm 一样在本地使用 pip install python 包