You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TargetSDK 30包可见性限制为何不对com.google.android.gms生效?

问题解答

核心结论

这是Android系统预设的自动可见包白名单机制,既不是系统Bug,也不是未公开特性,属于Android 11及以上版本包可见性规则的既定设计。

为什么com.google.android.gms无需声明即可查询

Android 11引入包可见性限制后,系统会默认将几类包纳入所有应用的可见范围,无需应用主动在清单文件的<queries>节点声明:

  • 系统核心框架级服务包
  • 设备预置的核心生态服务包

com.google.android.gms是Google Play服务的核心载体,属于GMS生态下的系统级预置核心服务,被系统默认加入了全应用可见白名单,因此你直接调用context.getPackageManager.getApplicationInfo("com.google.android.gms",0)不会触发NameNotFoundException异常。

还有哪些同类默认可见的包

常见的默认可见包包含几类:

  • 系统原生核心包:比如android、com.android.server等系统框架相关包
  • 设备厂商预置核心服务包:不同厂商会自定义加入自己的核心服务包,比如三星Knox核心服务包、小米MIUI核心服务包等
  • 与当前应用存在交互关联的包:比如给你的应用提供ContentProvider的应用、你曾经启动过Activity的应用、和你的应用使用相同签名的应用,都会自动获得可见权限

验证方法

你可以通过adb命令查看当前应用的可见包列表,确认com.google.android.gms是否默认在列:
adb shell dumpsys package queries [你的应用包名]


内容的提问来源于stack exchange,提问作者Nilesh Pawar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:18:02