华为6.0的WRITE_SETTING权限问题

时间:2021-10-31 18:51:29

今天在开发中适配华为mate8(6.0),遇到了注册中申请,并在BaseActivity也手动申请了WRITE_SETTING,依然报权限错误。查了下资料,发现是WRITE_SETTING的权限不能自动授权,也不能运行时请求授权,只能引导用户去开启。

核心代码

//6.0以上才能调用
@TargetApi(23)
void checkPermission(){
if(!Settings.System.canWrite(this)){
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE);
}
}

在代码中调用checkPermission(),则需要检查当前设备的sdk版本,否则会报错

if (Build.VERSION.SDK_INT >= 23) {
checkPermission();
}