阅读 42

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


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐