【问题标题】:Package visibility android Sdk 30包可见性android SDK 30
【发布时间】:2021-07-10 05:41:35
【问题描述】:

我最近针对 Android sdk 30 并在我的代码中添加了以下 sn-p

   <permission android:name="android.permission.QUERY_ALL_PACKAGES" />
    <queries>
        <intent>
            <action android:name="android.intent.action.MAIN" />
        </intent>
    </queries>

似乎在许多设备上都可以使用,我可以获取诸如已安装应用程序之类的软件包信息,但是在三星或一加一 (OnePlus7Pro_EE) 等某些设备中不起作用,我不确定如何解决此问题。如果我使用完整权限将起作用

 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

但是这样做意味着我需要申请用尽审查和许可声明,这可能会被拒绝。似乎在大多数设备中都可以使用,但在少数设备中它不起作用。我想要实现的是获取有关已安装应用程序和图标的信息示例:

packageManager.getApplicationIcon(packageName)

这样做抛出PackageManager$NameNotFoundException

【问题讨论】:

  • “但是在三星或一加一 (OnePlus7Pro_EE) 等某些设备中不起作用”——您的 minimal reproducible example 应该显示您正在做的事情涉及此 &lt;queries&gt; 元素和症状是你正在使用这些设备。此外,您确实需要摆脱 &lt;permission android:name="android.permission.QUERY_ALL_PACKAGES" /&gt; 元素。该权限由框架定义,而不是应用程序。
  • 我编辑了我的问题,非常感谢

标签: android android-permissions google-play-console android-11


【解决方案1】:

仅清单中的这些行就足以获取应用程序信息,例如名称和图标

<queries>
    <intent>
        <action android:name="android.intent.action.MAIN" />
    </intent>
</queries>

【讨论】:

  • 不幸的是,正如我在帖子中所写的那样,某些设备中的某些设备无法正常工作,并且我无法调试,因为就像 1% 的用户一样,很难弄清楚原因
猜你喜欢
  • 2021-11-17
  • 2021-08-03
  • 2012-01-28
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
相关资源
最近更新 更多