Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 查询所有包权限的作用是什么?_Android_Android 11 - Fatal编程技术网

Android 查询所有包权限的作用是什么?

Android 查询所有包权限的作用是什么?,android,android-11,Android,Android 11,Android R Preview 1引入了一个名为的新权限。许可的文件说明如下: 允许查询设备上的任何普通应用程序,而不考虑清单声明 有人知道这到底是怎么回事吗 我已尝试在emulator映像上运行以下内容,但权限对其中任何一个都没有影响: packageManager.querytentActivities(intent,0) packageManager.getInstalledPackages(0) 他们现在知道DP2已经过时了 引述: 而我还没有测试 在R DP2的这一方面,您的应用

Android R Preview 1引入了一个名为的新权限。许可的文件说明如下:

允许查询设备上的任何普通应用程序,而不考虑清单声明

有人知道这到底是怎么回事吗

我已尝试在emulator映像上运行以下内容,但权限对其中任何一个都没有影响:

  • 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,而不需要访问应用程序本身。因此,我们也必须在清单中添加查询吗?提前谢谢。