1. 程式人生 > >華為6.0的WRITE_SETTING許可權問題

華為6.0的WRITE_SETTING許可權問題

今天在開發中適配華為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();
}