1. 程式人生 > >Android6.0 如何新增更改系統設定許可權

Android6.0 如何新增更改系統設定許可權

在Android6.0以後,有很多許可權都需要開發者在程式碼中主動去申請,因此出現了很多申請6.0許可權的框架。

但是我在利用框架申請更改系統設定許可權時(如更改手機來電鈴聲需要此許可權),一般的框架沒有用。因此需要自己手動利用程式碼去申請,程式碼如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    // 判斷是否有WRITE_SETTINGS許可權if(!Settings.System.canWrite(this)) if (!Settings.System.canWrite(this)) {
        Intent intent = new 
Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName())); startActivityForResult(intent, REQUEST_CODE_PERMISSIONS); } }

跳轉到的許可權申請介面如下:


上面的開關已經預設開啟,但是返回後

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_PERMISSIONS
) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // 判斷是否有WRITE_SETTINGS許可權 if (Settings.System.canWrite(this)) { } else { } } } super.onActivityResult(requestCode, resultCode, data); }

返回的許可權判斷中,依然沒有許可權。只有在許可權申請介面關閉開關然後重新開啟,才可以正常獲取到許可權!!