关于android:ShareSDK-Android端权限说明

31次阅读

共计 1856 个字符,预计需要花费 5 分钟才能阅读完成。

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>

正文完
 0