DCloud_App_Array
DCloud_App_Array
  • 发布:2020-02-24 21:41
  • 更新:2023-01-05 17:19
  • 阅读:162281

Android平台云端打包权限配置

分类:HTML5+

此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-permission-android

根据工业和信息化部关于开展APP侵害用户权益专项整治要求,应用的隐私政策中需详细描述使用权限的用途。
为了不避免应用使用过多权限,HBuilderX2.6.3+版本对应用默认要求的权限进行简化,对第三方SDK需要的权限提供方法根据实际需求进行配置。

默认使用的基础权限

提交云端打包后会自动添加以下权限:

<uses-permission android:name="android.permission.INTERNET" />  
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
<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="com.asus.msa.SupplementaryDID.ACCESS" />  
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />  
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />  
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

权限说明:

  • android.permission.INTERNET
    使用网络权限,应用基础权限
  • android.permission.READ_EXTERNAL_STORAGE 和 android.permission.WRITE_EXTERNAL_STORAGE
    读写SD卡权限,系统授权提示未“访问设备上的照片、媒体内容和文件”,可以参考这里配置应用启动时申请读写手机存储策略
  • android.permission.READ_PHONE_STATE、ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE
    读取设备标识使用,用于uni统计服务,可以参考这里配置应用启动时申请访问设备信息权限策略
  • android.permission.INSTALL_PACKAGES、android.permission.REQUEST_INSTALL_PACKAGES
    安装apk需要的权限,应用中使用plus.runtime.install升级应用则需要此权限
    注意:HBuilder2.6.3+开始Goog Play渠道默认不再添加此权限,因为GooglePlay审核规则禁止应用下载apk更新,必须通过上传GooglePlay审核更新

特定权限说明:

  • com.asus.msa.SupplementaryDID.ACCESS
    获取设备标识信息oaid在华硕设备上需要用到的权限
  • com.huawei.android.launcher.permission.CHANGE_BADGE
    设置应用角标功能在华为设备上需要用到的权限
  • com.android.launcher.permission.INSTALL_SHORTCUT
    创建桌面快捷方式权限,应用中使用plus.navigator.createShortcut创建桌面快捷方式则需要此权限。
  • com.android.launcher.permission.UNINSTALL_SHORTCUT
    删除桌面快捷方式权限,应用中使用native.js删除桌面快捷方式则需要此权限
<a id='sdkpermission' /> ## Android自动添加三方SDK(或模块)需要的权限 提交云端打包时,勾选使用三方SDK相关的功能模块时,默认会自动添加三方SDK需要的所有权限。 为了保证三方SDK(或模块)的功能完整,默认会添加可能需要的所有权限,如果应用只用到三方SDK提供的部分功能,不希望自动添加三方SDK需要的所有权限,可以去掉勾选“Android自动添加第三方SDK需要的权限”。 **为了向下兼容,云端打包默认会添加“Geolocation(定位)” -> “系统定位”模块,因此会默认添加定位权限,如果不需要定位权限,请在App权限配置界面去掉勾选“Android自定添加第三方SDK需要的权限”**

注意:去掉自动添加第三方SDK需要的权限后,请务必根据需要在“Android权限配置”中勾选三方SDK必需的权限,三方SDK需要的权限详情参考后面《三方SDK(或模块)需要的权限列表》章节
保存后提交云端打包生效。

可视化界面配置

打开项目的manifest.json文件,在“App权限配置”项中去掉“Android自动添加第三方SDK需要的权限”

代码视图配置

打开项目的manifest.json文件,切换到“代码视图”。

  • uni-app项目
    在 "app-plus" -> "distribute" -> "android" 下添加 autoSdkPermissions 如下:
  "app-plus": {  
    "distribute": {  
      "android": {  
        "autoSdkPermissions": false,    // 不自动添加第三方SDK需要的Android权限  
        //...  
      },  
      //...  
  },  
  //...
  • 5+ APP(WAP2APP)项目
    在 "plus" -> "distribute" -> "google" 下添加 autoSdkPermissions 如下:
  "plus": {  
    "distribute": {  
      "google": {  
        "autoSdkPermissions": false,    // 不自动添加第三方SDK需要的Android权限  
        //...  
      },  
      //...  
  },  
  //...

Android权限配置

打开项目的manifest.json文件,在“(App)模块权限配置”页的“Android权限配置”项下根据需求勾选需要的权限:

如果没有列出需要的权限,可按以下方法手动添加
在manifest.json页面,切换到“代码视图”

  • uni-app项目
    在 "app-plus" -> "distribute" -> "android" -> "permissions" 下添加需要的权限如下:
  "app-plus": {  
    "distribute": {  
      "android": {  
        "permissions": [   //这里添加需要的Android权限  
            "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>"  
        ]  
        //...  
      },  
      //...  
  },  
  //...
  • 5+ APP(WAP2APP)项目
    在 "plus" -> "distribute" -> "google" -> "permissions" 下添加需要的权限如下:
  "app-plus": {  
    "distribute": {  
      "google": {  
        "permissions": [   //这里添加需要的Android权限  
            "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>"  
        ]  
        //...  
      },  
      //...  
  },  
  //...

三方SDK(或模块)需要的权限列表

Bluetooth(低功耗蓝牙)

      "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\" />",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH\" />"

Contact(通讯录)

      "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",  
      "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",  
      "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>"

Fingerprint(指纹识别)

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

iBeacon

      "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\" />",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH\" />"

Maps(定位和地图)

  • 高德地图
      "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",  
      "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" />",  
      "<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.ACCESS_LOCATION_EXTRA_COMMANDS\" />",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH\" />",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\" />"
  • 百度地图
      "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",  
      "<uses-permission android:name=\"android.permission.CHANGE_WIFI_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.INTERNET\"/>",  
      "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\" />",  
      "<uses-permission android:name=\"android.permission.READ_LOGS\" />",  
      "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"

Messaging(短彩邮件消息)

      "<uses-permission android:name=\"android.permission.RECEIVE_SMS\"/>",  
      "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",  
      "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",  
      "<uses-permission android:name=\"android.permission.READ_SMS\"/>"

OAuth(登录鉴权)

  • 微信登录
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"
  • QQ登录
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"
  • 新浪微博登录
  • 小米登录

Payment(支付)

  • 支付宝支付
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  • 微信支付
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"

Push(消息推送)

  • uniPush
     <!--个推通道必需权限  权限说明:  https://docs.getui.com/getui/question/sdk/ -->  
     "<uses-permission android:name=\"android.permission.INTERNET\" />",  
      "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_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.RECEIVE_BOOT_COMPLETED\" />",  
      "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",  
      "<uses-permission android:name=\"android.permission.VIBRATE\" />",  
      "<uses-permission android:name=\"android.permission.GET_TASKS\" />",  
       <!--个推通道 可选权限 用于电子围栏  -->  
      "<uses-permission android:name=\"android.permission.BLUETOOTH\" />(可选)",  
      "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\" />(可选)",  
      "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />(可选)",  
      "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />(可选)",  
      <!--厂商通道必需权限  小米-->  
      "<uses-permission android:name=\"android.permission.BROADCAST_PACKAGE_ADDED\" />",  
      "<uses-permission android:name=\"android.permission.BROADCAST_PACKAGE_CHANGED\" />",  
      "<uses-permission android:name=\"android.permission.BROADCAST_PACKAGE_INSTALL\" />",  
      "<uses-permission android:name=\"android.permission.BROADCAST_PACKAGE_REPLACED\" />",  
      "<uses-permission android:name=\"android.permission.RESTART_PACKAGES\" />",  
      "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\" />",  
     <!--厂商通道必需权限  魅族-->  
      "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\" />",  
      <!--厂商通道必需权限 华为-->  
      "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />"

个推推送与uniPush一致

Share(分享)

  • 微信分享
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"
  • QQ分享
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"
  • 新浪微博分享
      "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",  
      "<uses-permission android:name=\"android.permission.INTERNET\" />",  
      "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />"

Speech(语音识别)

  • 百度语音识别
      "<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />",  
      "<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.CHANGE_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.RECORD_AUDIO\" />",  
      "<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.CHANGE_NETWORK_STATE\" />",  
      "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",  
      "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />"

Static(统计)

  • 友盟统计
      "<uses-permission android:name=\"android.permission.READ_LOGS\" />",  
      "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\" />",  
      "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\" />"

uni-AD

  • 今日头条穿山甲广告联盟
      "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",  
      "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",  
      "<uses-permission android:name=\"android.permission.GET_TASKS\"/>"
  • 腾讯优量汇广告联盟
      "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",  
      "<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_PHONE_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",  
      "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />"

相关参考

6 关注 分享
aliang888 w***@cc.com 1***@qq.com LunaYJ 2***@qq.com 那年夏杪的木杺

要回复文章请先登录注册

devinchang

devinchang

云打包,自动添加了一些没有勾选的权限,怎么去掉?比如“拨打电话”、“查找设备上的帐户”、“读取联系人”权限,app里边根本不需要申请这些权限,如何去掉??
2022-03-23 11:09
w***@163.com

w***@163.com

回复 1***@163.com :
没有勾选打包完应该是自动添加了这个权限
2022-03-21 22:20
1***@163.com

1***@163.com

回复 w***@163.com :
在项目中不要勾选这个权限 , 在隐私协议中说明就可以了
2022-03-21 14:18
w***@163.com

w***@163.com

android.permission.READ_EXTERNAL_STORAGE 和 android.permission.WRITE_EXTERNAL_STORAGE 过不了应用商店审核
2022-03-21 12:03
3***@qq.com

3***@qq.com

回复 671 :
请问解决了吗
2022-03-11 09:30
9***@qq.com

9***@qq.com

回复 671 :
同问啊
2022-03-09 16:01
671

671

基础权限怎么关闭啊,不关闭审核都过不了
2022-03-05 22:26
坎坎坷坷一起走

坎坎坷坷一起走

回复 蓝度飞 :
怎么通过的 能否告知下
2022-02-25 17:15
1***@qq.com

1***@qq.com

回复 1***@qq.com :
我是用vscode写的vue项目,直接打包成dist给后台发布是没问题的,用HBuildx云打包就不行
2022-02-24 15:13
1***@qq.com

1***@qq.com

为什么我在权限配置里面√了"<uses-permission android:name=\"android.permission.CAMERA\"/>",而且在
"google": {
"permissions": [
"<uses-permission android:name=\"android.permission.CAMERA\"/>"
]
}, 里面也添加有,云打包后还是没有摄像头权限???
2022-02-24 15:12