[英]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.