【发布时间】: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 应该显示您正在做的事情涉及此
<queries>元素和症状是你正在使用这些设备。此外,您确实需要摆脱<permission android:name="android.permission.QUERY_ALL_PACKAGES" />元素。该权限由框架定义,而不是应用程序。 -
我编辑了我的问题,非常感谢
标签: android android-permissions google-play-console android-11