文章目录

  • 一、前言
  • 二、Android 危险权限列表
  • 三、各大平台SDK权限
  • 1、应用宝(YSDK)
  • 2、微信(wechat)
  • 3、支付宝(Alipay)
  • 4、OPPO
  • 5、VIVO
  • 6、小米
  • 7、华为
  • 8、九游
  • 四、服务类SDK
  • 1、Bugly
  • 2、高德地图
  • 3、极光推送
  • 五、结束语


一、前言

嗨,大家好,我是新发。

最近各大应用商店平台开始严格规范应用权限。

具体可以参见工信部发布的通知:《工业和信息化部关于开展纵深推进APP侵害用户权益专项整治行动的通知》

Android判断权限权限被拒绝且不再询问 app权限检测_权限


作为开发者,我们需要检测自身应用的权限,一般我们都是因为接入第三方SDK才引入一些权限的,这里我给大家整理一下各大平台SDK的权限。

二、Android 危险权限列表

首先,我们先要知道哪些权限是属于危险权限,如下:

权限名

权限组

解释

ACCEPT_HANDOVER

PHONE(电话组)

允许呼叫应用继续在另一个应用中启动的呼叫

ACCESS_BACKGROUND_LOCATION

LOCATION(定位组)

允许应用程序在后台访问位置

ACCESS_COARSE_LOCATION

LOCATION(定位组)

允许程序通过WiFi或移动基站的方式获取用户错略的经纬度信息

ACCESS_FINE_LOCATION

LOCATION(定位组)

允许程序通过GPS芯片接收卫星的定位信息

ACTIVITY_RECOGNITION

允许应用程序识别物理活动

ADD_VOICEMAIL

PHONE(电话组)

允许程序添加语音邮件系统

ANSWER_PHONE_CALLS

PHONE(电话组)

允许程序接听来电

BODY_SENSORS

SENSORS(传感器组)

允许应用程序访问用户用来测量身体内部情况的传感器数据,例如心率

CALL_PHONE

PHONE(电话组)

允许程序从非系统拨号器里拨打电话

CAMERA

CAMERA(相机拍照组)

允许程序访问摄像头进行拍照

GET_ACCOUNTS

CONTACTS(联系人组)

允许程序访问账户Gmail列表

PROCESS_OUTGOING_CALLS

PHONE(电话组)

允许程序监视,修改或放弃播出电话

READ_CALENDAR

CALENDAR(日历组)

允许程序读取用户的日程信息

READ_CALL_LOG

PHONE(电话组)

允许程序读取通话记录

READ_CONTACTS

CONTACTS(联系人组)

允许程序访问联系人通讯录信息

READ_PHONE_NUMBERS

PHONE(电话组)

允许程序读取设备的电话号码

READ_PHONE_STATE

PHONE(电话组)

允许程序访问电话状态

READ_SMS

SMS(手机短信服务组)

允许程序读取短信内容

RECEIVE_MMS

SMS(手机短信服务组)

允许程序接收彩信

RECEIVE_SMS

SMS(手机短信服务组)

允许程序接收短信

RECEIVE_WAP_PUSH

SMS(手机短信服务组)

允许程序接收WAP PUSH信息

RECORD_AUDIO

MICROPHONE(麦克风组)

允许程序录制声音通过手机或耳机的麦克

SEND_SMS

SMS(手机短信服务组)

允许程序发送短信

USE_SIP

PHONE(电话组)

允许程序使用SIP视频服务

WRITE_CALENDAR

CALENDAR(日历组)

允许程序写入日程,但不可读取

WRITE_CALL_LOG

PHONE(电话组)

允许程序写入(但是不能读)用户的联系人数据

WRITE_CONTACTS

CONTACTS(联系人组)

允许程序写入联系人,但不可读取

READ_EXTERNAL_STORAGE

STORAGE(存储组)

允许程序可以读取设备外部存储空间

WRITE_EXTERNAL_STORAGE

STORAGE(存储组)

允许程序写入外部存储,如SD卡上写文件

三、各大平台SDK权限

以下列举的Android权限是根据SDKAndroidManifest.xml来列举的。

1、应用宝(YSDK)

SDK下载:https://wiki.open.qq.com/index.php?title=YSDK%E4%B8%8B%E8%BD%BD

Android判断权限权限被拒绝且不再询问 app权限检测_敏感_02

AndroidManifest.xml权限:

<!-- 网络请求 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取设备WIFI连接状态 ,非必要,但建议保留-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 检测网络状态 ,非必要,但建议保留 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 读取日志 ,非必要,但建议保留 -->
<uses-permission android:name="android.permission.READ_LOGS" />

<!-- Midas需要,向SD卡写入文件,非必要权限  -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 获取机型信息和运营商信息,非必要权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

其中,敏感权限:

<!-- Midas需要,向SD卡写入文件,非必要权限  -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 获取机型信息和运营商信息,非必要权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
2、微信(wechat)

SDK下载:https://developers.weixin.qq.com/doc/oplatform/Downloads/Android_Resource.html

Android判断权限权限被拒绝且不再询问 app权限检测_权限_03


AndroidManifest.xml权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

其中,敏感权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
3、支付宝(Alipay)

SDK下载:https://opendocs.alipay.com/open/54/104509

Android判断权限权限被拒绝且不再询问 app权限检测_android_04


AndroidManifest.xml权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

其中,敏感权限:无

4、OPPO

SDK下载:https://open.oppomobile.com/wiki/doc#id=10470

Android判断权限权限被拒绝且不再询问 app权限检测_敏感_05


AndroidManifest.xml权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

其中,敏感权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
5、VIVO

SDK下载:https://dev.vivo.com.cn/documentCenter/doc/6

Android判断权限权限被拒绝且不再询问 app权限检测_sdk_06

AndroidManifest.xml权限:

<uses-permission android:name="vivo.game.permission.OPEN_JUMP_INTENTS"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

//asus permisstion
<uses-permission android:name="com.asus.msa.SupplementaryDID.ACCESS" />

其中,敏感权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
6、小米

SDK下载:https://dev.mi.com/console/doc/detail?pId=102

Android判断权限权限被拒绝且不再询问 app权限检测_权限_07

AndroidManifest.xml权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.xiaomi.sdk.permission.PAYMENT" />
<uses-permission android:name="com.xiaomi.permission.AUTH_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

其中,敏感权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
7、华为

SDK下载:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Library-V5/sdk-download-0000001050151556-V5

Android判断权限权限被拒绝且不再询问 app权限检测_权限_08

AndroidManifest.xml权限:

<!-- HMS-SDK引导升级HMS功能,访问OTA服务器需要网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 检测网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- Android O版本调用安装需要使用该权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

<!-- 应用市场9.0版本必须使用该权限获取用户的服务地 -->
<uses-permission android:name="com.huawei.appmarket.service.commondata.permission.GET_COMMON_DATA" />

其中,敏感权限:无

8、九游

SDK下载:https://game.open.uc.cn/document/doc/detail/15

Android判断权限权限被拒绝且不再询问 app权限检测_unity_09


AndroidManifest.xml权限:

<!-- alipay sdk BEGIN ------------------------------------------>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- alipay sdk BEGIN ------------------------------------------>
<!-- net-sdk BEGIN ------------------------------------------>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<!-- 8x新增加 -->
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- net-sdk END ------------------------------------------>

<!-- ugpsdk-net BEGIN ------------------------------------------>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- ugpsdk-net END ------------------------------------------>

其中,敏感权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

四、服务类SDK

1、Bugly

SDK下载:https://bugly.qq.com/v2/downloads

Android判断权限权限被拒绝且不再询问 app权限检测_sdk_10


AndroidManifest.xml权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />

其中,敏感权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
2、高德地图

SDK下载:https://lbs.amap.com/api/android-sdk/download/

Android判断权限权限被拒绝且不再询问 app权限检测_sdk_11


AndroidManifest.xml权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!--声明后台定位权限-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

其中,敏感权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--声明后台定位权限-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
3、极光推送

SDK下载:https://docs.jiguang.cn//jpush/resources/

Android判断权限权限被拒绝且不再询问 app权限检测_敏感_12

AndroidManifest.xml权限:

<!-- Required -->
<permission 
	android:name="${applicationId}.permission.JPUSH_MESSAGE" 
	android:protectionLevel="signature" />

<!-- Required  一些系统要求的权限,如访问网络等-->
<uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<!--华为角标-->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>

<!-- Optional for location -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /><!-- Android Q后台定位权限-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

<!--xiaomi_permission_start-->
<permission
    android:name="${applicationId}.permission.MIPUSH_RECEIVE"
    android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
<!--xiaomi_permission_end-->
<!--oppo_permission_start-->
<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE" />
<uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE" />
<!--oppo_permission_end-->

其中,敏感权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- Android Q后台定位权限-->

五、结束语

目前先整理这么多,后续有空继续补充。