写点什么

ShareSDK Android 端权限说明

  • 2023-03-30
    上海
  • 本文字数:1286 字

    阅读完需:约 4 分钟

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>
复制代码


用户头像

还未添加个人签名 2019-05-08 加入

还未添加个人简介

评论

发布
暂无评论
ShareSDK Android端权限说明_MobTech袤博科技_InfoQ写作社区