Android 查询所有包权限的作用是什么?
Android R Preview 1引入了一个名为的新权限。许可的文件说明如下: 允许查询设备上的任何普通应用程序,而不考虑清单声明 有人知道这到底是怎么回事吗 我已尝试在emulator映像上运行以下内容,但权限对其中任何一个都没有影响:Android 查询所有包权限的作用是什么?,android,android-11,Android,Android 11,Android R Preview 1引入了一个名为的新权限。许可的文件说明如下: 允许查询设备上的任何普通应用程序,而不考虑清单声明 有人知道这到底是怎么回事吗 我已尝试在emulator映像上运行以下内容,但权限对其中任何一个都没有影响: packageManager.querytentActivities(intent,0) packageManager.getInstalledPackages(0) 他们现在知道DP2已经过时了 引述: 而我还没有测试 在R DP2的这一方面,您的应用
packageManager.querytentActivities(intent,0)
packageManager.getInstalledPackages(0)
- 他们现在知道DP2已经过时了
引述:
而我还没有测试
在R DP2的这一方面,您的应用程序现在似乎无法发现安装了哪些其他应用程序,
在一般基础上。引用的示例是
queryIntentActivities()
,但是
这真的很有效,您需要认真地对PackageManager进行脑叶切除。
您可以将某些软件包和某些
在某些用例中,试图通过这种方式获得的结构。这就是
DP1中神秘的QUERY\u ALL\u包
权限开始发挥作用-
此权限将删除这些新限制。考虑到“寻找谷歌游戏”
若要为需要此权限的应用程序提供指导原则“警告”,最安全的做法是假设
如果你尝试使用它,最终你将被一家游戏商店禁止
机器人
所以,您可能想在DP2上重新尝试您的实验。我计划在未来几周内也这样做。即使添加了权限
QUERY\u ALL\u包
,您仍然需要将
过滤器添加到您的AndroidManifest
例如,对于launcher应用程序,它可能是:
<permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
</queries>
谢谢!我已经接受了这个答案,因为它链接到了官方文档,有足够的信息让我可以使用它。更新到DP2后,我对querytentActivities()
的调用只返回了几个应用程序。我将
元素添加到清单中,以声明我传递给queryIntentActivities()
的意图,然后queryIntentActivities()
再次开始返回所有相关的应用程序。我很好奇。在需要列出所有应用程序的应用程序上(如home launcher应用程序,或根据用户输入向其他应用程序添加内容的实用程序应用程序),添加权限是否被视为危险?或者,这是否会影响调用PackageManager.getInstalledApplications()?如果确实有影响,我们应该怎么做才能在不添加许可的情况下获取已安装的应用程序?@FurkanYurdakul:他们的文档中有这样一种说法,即请求QUERY\u所有软件包都需要获得批准(可能通过表单),才能在Play Store上分发你的应用程序。启动器应该很少有(er)问题,因为您可以使用
元素将查询主页的功能列入白名单。我还没有对PackageManager
中的哪些内容和哪些内容不受影响进行完整测试,但我猜getInstalledApplications()
将受到影响。@Sam即使我也检查了Android 11 beta版,但所有包列表都来自上述API。没有看到android 11更改文档中提到的任何影响。@El.,自测试版以来,我没有测试过,但我想知道,如果您将应用程序的目标版本更改为30
,这些更改是否适用?您是否可以发出此查询和此操作捕获,您是否有发送到的想法,向多个文档发送有关意向过滤器的信息谢谢,这比接受的答案更容易理解。如果您在
元素中添加更多关于权限作用和需要输入内容的详细信息,那么我会将此作为可接受的答案。我们只需要通过Android PackageManager查询调用组件的packageName,而不需要访问应用程序本身。因此,我们也必须在清单中添加查询吗?提前谢谢。