uniapp应用中去掉 android.permission.read_phone_state 权限的方法
在UniApp开发中,如何去除AndroidManifest.xml自动生成的android.permission.READ_PHONE_STATE
权限?打包APK时发现该权限被默认添加,但实际应用并不需要读取手机状态。尝试在manifest.json中配置"permission-block"无效,修改原生AndroidManifest.xml后每次打包又被覆盖。请问有什么方法可以永久移除这个权限?
2 回复
在manifest.json的App权限配置中,删除android.permission.READ_PHONE_STATE权限。如果使用HBuilderX,可在可视化界面取消勾选该权限。重新打包即可生效。
在 UniApp 中,android.permission.READ_PHONE_STATE
权限通常由某些插件或框架自动引入。要去掉此权限,请按以下步骤操作:
1. 检查并修改 manifest.json
在 UniApp 项目的 manifest.json
文件中,检查是否显式配置了该权限。如果有,直接删除:
{
"permissions": {
"android": {
// 删除或注释掉以下行:
// "READ_PHONE_STATE"
}
}
}
2. 检查原生插件配置
如果使用了第三方原生插件(如某些推送或统计插件),可能自动添加了此权限:
- 在项目的
nativeplugins
目录中找到对应插件的配置。 - 检查插件的
androidManifest.xml
或plugin.xml
文件,删除包含READ_PHONE_STATE
的权限声明。
3. 自定义 App 模块配置(如有)
如果项目使用了自定义模块,在 modules
配置中检查并移除相关权限。
4. 重新生成并打包
修改后,重新编译生成 APK:
npm run build:app-plus
或通过 HBuilderX 重新打包。
注意事项:
- 某些功能(如获取设备 ID)依赖此权限,移除可能导致功能异常。
- 如果权限由插件强制添加,可能需要联系插件作者或寻找替代插件。
完成以上步骤后,权限将被移除。