安卓6.0系統許可權問題android.permission.WRITE_SETTINGS
阿新 • • 發佈:2019-02-18
關於“Android.permission.WRITE_SETTINGS”的許可權,申請,判斷
精簡程式碼如下:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if(!Settings.System.canWrite(this)){ Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName())); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivityForResult(intent, REQUEST_CODE_ASK_WRITE_SETTINGS); }else{ //有了許可權,你要做什麼呢?具體的動作 } }
在這裡,Write_setting有個坑,申請了write_setting許可權後,也出現閃退的情況,異常為:Java.lang.IllegalArgumentException: You cannot
keep your settings in the secure settings.
在android 6.0及以後,WRITE_SETTINGS許可權的保護等級已經由原來的dangerous升級為signature,這意味著我們的APP需要用系統簽名或者成為系統預裝軟體才能夠申請此許可權,並且還需要提示使用者跳轉到修改系統的設定介面去授予此許可權
也就是說,要想申請該許可權,apk必須要打包,簽名打包。要簽名打包,最喜歡的debug模式是不能申請該許可權。
轉自:http://blog.csdn.net/XieGaoXiong/article/details/52317155