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袤博(www.mob.com)是全球领先的数据智能科技平台。自2012年成立以来,旗下MobTech开发者服务依...

128 声望
12 粉丝
0 条评论
推荐阅读
MobTech MobPush|统一推送联盟烂尾,统一推送还能实现吗
统一推送联盟(Unified Push Alliance)是Android(安卓)平台下的移动应用信息推送技术联盟,以改善Android系统用户的推送服务体验。该联盟由工业和信息化部旗下中国泰尔实验室牵头成立于2017年10月,挂靠电信终...

MobTech袤博阅读 145

网易云音乐开源全链路埋点方案-曙光埋点(dawn)
网易云音乐开源了曙光埋点 dawn,一个跨多端的全链路埋点解决方案,旨在构造一个完美的数据理想国。曙光埋点创造性的提出了埋点虚拟树(VTree),并在此基础上实现了诸多能力,解决大前端侧埋点困难、精度差、不...

云音乐技术团队3阅读 2.5k

封面图
直播回顾 | 点击率提升400%,Ta是怎么做到的?
Discovery第18期直播已于3月30日圆满结束,本期直播邀请天眼查做客直播间,从天眼查与华为Push用户增长服务合作历程切入,聚焦用户增长,分享提升应用活跃度和渠道ROI的经验与见解。一起来回顾本期精彩内容吧!

HMSCore阅读 6.4k

Android Crash 前的最后抢救
众所周知,当 Andoird 程序发生未捕获的异常的时候,程序会直接 Crash 退出。而所谓安全气囊,是指在 Crash 发生时捕获异常,然后触发兜底逻辑,在程序退出前做最后的抢救。

xiangzhihong1阅读 1.3k

教你如何在 Andorid 上使用OpenAI API 调用ChatGpt
现在Chat GPT功能越来越强了,几乎你想问实际问题它都能给你回答。正好,小组结课的 Android项目 有一个解梦的功能。正好调用chatGpt的Api来实现。下面就来简单实现在Andorid项目中打造一个简易的聊天机器人。

weiweiyi1阅读 1k

Linux下编译WebRTC(Linux和Android版本)
随着新冠疫情的影响,这两年音视频的需求呈爆发式增长。在音视频领域中,WebRTC可以说是一个绕不开宝库,包括了音视频采集、编解码、传输、渲染的全过程。本文主要记录下在Linux平台上编译WebRTC Linux和Android...

吴尼玛阅读 3.3k评论 2

一名七年老安卓的一二月小结
你好,我是 shixin,一名工作七年的安卓开发。每两个月我会做一次总结,记下这段时间里有意义的事和值得反复看的内容,为的是留一些回忆、评估自己的行为、沉淀有价值的信息。一转眼 2023 年过去了六分之一,这两...

shixinzhang2阅读 738

封面图

MobTech袤博(www.mob.com)是全球领先的数据智能科技平台。自2012年成立以来,旗下MobTech开发者服务依...

128 声望
12 粉丝
宣传栏