1. 程式人生 > >安卓6.0系統許可權問題android.permission.WRITE_SETTINGS

安卓6.0系統許可權問題android.permission.WRITE_SETTINGS

關於“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