HBuilderX app启动时自动申请访问相册和拨打电话权限解决方法
HBuilderX打包后app安装启动会自动申请读写手机存储需访问系统相册,申请获取设备信息权限,这2种都是敏感权限,容易导致上架应用商店审核被拒,如图:
注意 :图片是用的网上的
针对上面的这两个提示框的解决方法,应该分为两种
1. 首先是云打包(就是用 HBuilderX打包):之前在处理这个问题的时候,网上一部分的说法是在 manifest.json 这个文件里面去配置
1-1. 如果是用的 uni-app 这个框架,则需要在 “app-plus” -> “distribute” -> “android” 节点下添加
uni-app项目 在 "app-plus" -> "distribute" -> "android" 添加 5+ App项目 在 "plus" -> "distribute" -> "google" 节点下添加 1.关闭获取设备信息权限 "permissionPhoneState": { "request": "none", "prompt": "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。" } 2. 关闭读写手机存储相册权限 "permissionExternalStorage": { "request": "none", "prompt": "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。" } 注意 : request: 字符串类型,必填,申请设备信息权限策略,可取值none、once、always。默认值为once。 none : 应用启动时不申请 once : 应用第一次启动时申请,用户可以拒绝 always :应用每次启动都申请,并且用户必须允许,用户拒绝时会弹出以下提示框引导用户重新允许 prompt : 字符串类型,可选,用户拒绝时弹出提示框上的内容
1-2. 如果是离线打包则需要在androidManifest.xml
的application
节点下添加如下字段
1. 存储权限弹窗配置 : <application> <meta-data android:name="DCLOUD_WRITE_EXTERNAL_STORAGE" android:value="none"/> </application> 2. 读取手机状态弹窗配置 : <application> <meta-data android:name="DCLOUD_READ_PHONE_STATE" android:value="none"/> </application> 注意 :value可取值为 none、once、always。