
🔧 环境配置详情
| 工具 / 设备 | 版本 / 型号 | 状态说明 |
|---|
| HBuilderX | 4.66 | 最新稳定版 |
| 模拟器 | 雷电 9 | 每次重启触发权限弹窗 |
| 测试手机 | 荣耀(鸿蒙 2 兼容安卓) | 每次重启触发权限弹窗 |
🚦 问题现象描述
- 模拟器出现问题:雷电 9 模拟器每次重启必现 "允许 HBuilder 拨打电话" 弹窗
- 权限冲突表现:用户未在代码中调用电话功能,属于框架隐含权限请求
- 拒绝后果:权限拒绝后应用自动关闭,影响开发调试流程
📜 官方解决方案索引
- DCloud 官方权限问题解答
⚠️ 重点关注 "应用启动权限申请策略" 章节
- 应用上架权限规范指南
✅ 建议通读 "权限申请时机" 部分
📝 manifest.json 配置实操
"app-plus" : {
"checkPermissionDenied" : true,
...
"distribute" : {
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.MANAGE_EXTERNAL_STORAGEE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"permissionPhoneState" : {
"request" : "none",
"prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
},
"permissionExternalStorage" : {
"request" : "none",
"prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
},
"excludePermissions" : [
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>"
]
},
"ios" : {
"dSYMs" : false
},
"sdkConfigs" : {}
}
}
🚫 强制移除的敏感权限
- ❌ 通讯录相关权限已通过
excludePermissions节点移除
- 配置效果如图所示:

⚠️ 重要版本说明
- HX3.5.5 + 版本特性:
🔹 系统默认权限申请策略调整为request: none
🔹 需手动确认 manifest.json 中两项关键配置:
"permissionPhoneState": { "request": "none" },
"permissionExternalStorage": { "request": "none" }
✅ 最终验证结果
| 测试环境 | 未打包状态 | 打包后状态 |
|---|
| 雷电 9 模拟器 | ❌ 持续弹出权限弹窗 | ✅ 弹窗消失 |
| 荣耀真机(鸿蒙) | ——(未测试未打包) | ✅ 权限请求消失 |
📚 延伸阅读