繁体   English   中英

列出 Android 中的所有应用程序

[英]List the all apps in Android

我正在尝试使用 queryIntentActivities 方法列出 android 设备中的所有应用程序,但该列表并未返回所有应用程序,它仅返回其中三个。 这是我的代码:

    PackageManager packageManager = getPackageManager();

    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    List<ResolveInfo> allApps = packageManager.queryIntentActivities(intent, 0);
    for (ResolveInfo ri : allApps) {
        Log.d("Labels", String.valueOf(ri.loadLabel(packageManager)));
    }

现在有没有人为什么它只返回 3 个应用程序?

您最有可能尝试在 Android 11 上执行此操作。确保将<uses-permission android:name"android.permission.QUERY_ALL_PACKAGES">权限添加到 AndroidManifest.Z0F635D7B88C78 文件。

虽然我还没有测试过 R DP2 的这方面,但您的应用程序现在似乎无法找出安装了哪些其他应用程序,一般来说。 引用的示例是 queryIntentActivities(),但要使其真正起作用,您需要认真地对 PackageManager 进行 lobotomize。 您可以将某些包和某些结构列入白名单,以尝试在某些用例中使用它。 而且,这就是在 DP1 中看到的神秘 QUERY_ALL_PACKAGES 权限发挥作用的地方——这个权限消除了这些新的限制。 鉴于“寻找 Google Play 为需要此权限的应用程序提供指南”警告,最安全的假设是,如果您尝试使用它,最终您将被机器人禁止进入 Play 商店。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM