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" />
<!--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>
「其他文章」