Android 权限机制详解:运行时权限、适配与最佳实践
一、权限分类
- 普通权限:安装即授予
- 危险权限:运行时请求
- 特殊权限:需系统设置授权
二、Manifest 声明
<uses-permission android:name="android.permission.CAMERA" />
三、运行时请求(Activity Result API)
private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { granted ->
if (granted) { /* do work */ }
}
requestPermission.launch(Manifest.permission.CAMERA)
四、兼容性与用户体验
- 解释权限用途,避免用户拒绝
- 被拒绝后引导到设置页
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
data = Uri.fromParts("package", packageName, null)
}
startActivity(intent)
结论
权限是稳定性与合规的底线,建议在首次需要时再请求,提升通过率。
