ShareSDK Android端权限说明
ShareSDK使用权限情况
权限
权限说明
是否必须
INTERNET
允许应用程序联网
必须
ACCESS_NETWORK_STATE
允许访问网络状态
必须
READ_PHONE_STATE
读取设备标识
非必须
WRITE_EXTERNAL_STORAGE
用于缓存分享图片、log日志和设备标识,以及文件锁的使用
非必须
ACCESS_FINE_LOCATION
用于分享SDK管理后台的区域分析功能展示
非必须
ACCESS_COARSE_LOCATION
用于分享SDK管理后台的区域分析功能展示
非必须
QUERY_ALL_PACKAGES
用于高版本Android系统手机中判断第三方平台是否安装
非必须(Android10以上的版本需要)
去除非必须的权限
普通权限去除
可以在module模块中的build.gradle文件中添加以下的配置去除Gradle自动加载的可选权限方法,去除之后无需添加其他配置功能可以正常使用:
permissions { exclude "需要去除的权限1", "需要去除的权限2" } 复制代码
比如需要去除掉“android.permission.READ_PHONE_STATE”权限,则直接添加如下配置即可:
MobSDK { appKey "Mob开发者后台申请的AppKey" appSecret "Mob开发者后台申请的AppSecret" ShareSDK { devInfo { ... } } permissions { exclude "android.permission.READ_PHONE_STATE", } } 复制代码
QUERY_ALL_PACKAGES权限去除说明:
Android高版本(Android10以上)判断第三方平台是否安装需要使用QUERY_ALL_PACKAGES权限,如果没有这个权限ShareSDK分享、授权无法使用,不过因为Google商店对QUERY_ALL_PACKAGES权限审核比较严格,如您不希望使用QUERY_ALL_PACKAGES权限,可以使用我们提供exclude的方式去除QUERY_ALL_PACKAGES权限:
MobSDK { appKey "Mob开发者后台申请的AppKey" appSecret "Mob开发者后台申请的AppSecret" ShareSDK { devInfo { ... } } permissions { exclude "android.permission.QUERY_ALL_PACKAGES", } } 复制代码
需要注意的是去除QUERY_ALL_PACKAGES权限之后,需要在Manifest中通过"queries标签"手动配置一下需要使用的第三方平台包名,类似这样:
<manifest package="xxxxxx"> ...... <queries> <!--WhatsApp--> <package android:name="com.whatsapp" /> <!--Facebook--> <package android:name="com.facebook.katana" /> <!--Line客户端--> <package android:name="jp.naver.line.android" /> <!--Google包名--> <package android:name="com.google.android.gm"/> <package android:name="com.google.android.gms"/> <package android:name="com.google.android.apps.plus"/> <!--Twitter--> <package android:name="com.twitter.android" /> <!--WeChat--> <package android:name="com.tencent.mm" /> <!--QQ--> <package android:name="com.tencent.mobileqq" /> <!--instagram--> <package android:name="com.instagram.android" /> <!--FacebookMessenger--> <package android:name="com.facebook.orca" /> <!--新浪微博--> <package android:name="com.sina.weibo" /> ...... </queries> ...... </manifest>
作者:MobTech开发者
链接:https://juejin.cn/post/7171262025719840798