关于Query all packages permission权限:应用未使用却无法提交至Google Play求助
关于Google Play提示QUERY_ALL_PACKAGES权限但未主动使用的问题排查
- 依赖库隐式引入:你没直接声明这个权限,但项目里的第三方SDK、依赖库(比如广告SDK、统计SDK、工具类库)可能在自身Manifest中声明了该权限,打包时被合并到你的应用Manifest里。可以查看打包后的最终Manifest文件(路径一般为
app/build/intermediates/manifests/full/[debug/release]/AndroidManifest.xml),搜索QUERY_ALL_PACKAGES关键词确认。 - 代码行为触发权限检测:Google Play的权限检测系统会分析代码逻辑,如果你的应用调用了
PackageManager.getInstalledPackages()、PackageManager.queryIntentActivities()等未加过滤条件的API,系统会判定你需要查询所有已安装应用的能力,进而触发该权限的问询,哪怕你没主动声明权限。 - Manifest合并规则失效:如果已经在Manifest里加了
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:node="remove"/>但没生效,可能是tools命名空间没正确引入,或者依赖库的权限声明优先级更高。要确保Manifest根标签里已经添加xmlns:tools="http://schemas.android.com/tools"。 - 旧版本权限记录遗留:如果之前的应用版本曾经声明过该权限,Google Play后台可能还保留着相关记录,导致新版本提交时仍被触发。可以去Google Play Console的权限声明页面检查是否有遗留记录,手动更新或清理。
内容的提问来源于stack exchange,提问作者User511
相关产品推荐
相关产品推荐

