ShareSDK使用权限情况

image.png

去除非必须的权限

普通权限去除
可以在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_PACKAGESE",
    }
}

需要注意的是去除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" />
    <!--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>

可进入官网文档中心了解更多操作指南


中关村科金
136 声望13 粉丝

北京中关村科金技术有限公司(简称“中关村科金”)是国内领先的对话式AI技术解决方案提供商,成立于2014年,注册资本14亿元,总部位于北京,在上海、重庆、深圳、杭州、成都等地设有分支机构,公司规模近千人,其...