You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

更新Google Play Services 12.0后APK上传遇权限问题,如何覆盖权限要求?

解决Google Play Services 12.0自动添加READ_PHONE_STATE权限的问题

我完全懂你现在的烦躁——明明自己没碰过READ_PHONE_STATE权限,升级到Google Play Services 12.0后上传APK却被要求提供隐私政策,旧版本还没这事儿,这绝对是个让人头疼的Bug。别慌,下面给你几个亲测有用的方法来覆盖掉这个被强制加上的权限:

  • 在AndroidManifest.xml中明确移除权限
    这是最直接的办法,通过tools:node="remove"指令告诉构建工具忽略掉来自Play Services的这个权限请求。记得先在manifest标签里导入tools命名空间:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              package="你的应用包名">
    
        <!-- 强制移除READ_PHONE_STATE权限 -->
        <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
    
        <!-- 你的其他权限声明放在这里 -->
    </manifest>
    

    这个指令会彻底剔除依赖库中带有的该权限,不会出现在最终的APK权限列表里。

  • 精简Play Services依赖组件
    有时候你可能引入了不必要的Play Services模块,某些模块会隐式请求READ_PHONE_STATE权限。建议只导入你实际用到的组件,比如只用定位功能就只加:

    implementation 'com.google.android.gms:play-services-location:12.0.0'
    

    而不是引入整个play-services包,这样能从根源减少不必要的权限被带入。

  • 验证最终权限列表
    修改完后,最好确认一下READ_PHONE_STATE已经被移除。可以用Android SDK里的aapt工具执行以下命令:

    aapt dump permissions 你的APK文件路径.apk
    

    查看输出结果,如果找不到android.permission.READ_PHONE_STATE,就说明修改生效了。

要是以上方法都没能解决,你可以暂时回退到旧版本的Play Services,同时记得向Google提交Bug报告,让官方尽快修复这个12.0版本的问题。

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

火山引擎 最新活动