在 UniApp 的 manifest.json
中已配置了 RECORD_AUDIO
、CAMERA
、ACCESS_FINE_LOCATION
权限,为何还需在代码中调用 plus.android.requestPermissions()
动态申请?
// manifest.json android 权限配置
"android" : {
"permissions" : [
"<uses-permission android:name="android.permission.RECORD_AUDIO"/>",
"<uses-permission android:name="android.permission.CAMERA"/>",
"<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>",
]
}
答:
- Android 6.0+ (API ≥23)对敏感权限(如摄像头、麦克风、定位)需运行时动态申请 ,必须由用户主动授权 ,仅静态声明(
manifest.json
)无法直接生效;低版本(Android ≤5.1)无需动态申请,安装时默认授予。 - 这三个权限属于"危险权限",涉及用户隐私,必须动态请求用户授权。
- UniApp 最终会将
manifest.json
中的权限声明写入生成的AndroidManifest.xml
文件,但 仅静态声明权限不足以在 Android 6.0+ 设备上实际获得权限 。必须在代码中调用plus.android.requestPermissions()
向用户请求授权。