Android6.0 如何新增更改系統設定許可權
阿新 • • 發佈:2019-01-27
在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 = newIntent(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); }
返回的許可權判斷中,依然沒有許可權。只有在許可權申請介面關閉開關然後重新開啟,才可以正常獲取到許可權!!