Android6.0許可權申請
最近由於專案功能迭代,本身圖省事不想要在程式碼中動態的申請許可權,所以在build.gradle中的minsdk寫成了19 ,而targetSdkVersion 也是19,這樣就避免了在6.0系統上動態申請許可權,本來一切都是ok的,但是在小米8上的8.1系統版本中出現了問題,程式碼中獲取不到許可權,這塊具體為什麼也沒有去仔細研究,估計是小米系統做了驗證什麼的.
Android動態申請許可權
其實這部分稍微看一下,很簡單。簡單介紹一下:android在6.0版本之前許可權只需要在配置檔案中申請一下就可以了,而6.0以後為了使用者安全以及使用者隱私方面的問題需要在動態程式碼中去申請許可權,由使用者決定是否給予許可權。
而動態申請許可權主要就是幾個系統提供的方法:
1、判斷當前是否有該許可權
int flag = ActivityCompat.checkSelfPermission(context, permission);
if(flag == PERMISSION_GRANTED){
//該許可權已擁有
}else{
//沒有該許可權
}
2、判斷該許可權是否已勾選禁止後不再提示選項
boolean flag = activity.shouldShowRequestPermissionRationale(permission);
if(flag){
//沒有勾選,申請許可權還會顯示對話方塊
}else{
//勾選了 ,許可權已經在程式碼中徹底禁止,只能手動在設定頁面去授予許可權
}
這裡有個小的提示:flag是flase的情況 flag==flase 不代表當前沒有許可權,這隻單純不會顯示許可權對話方塊了,有可能在這裡許可權已經被授予了,這時也是返回false的。所以在else裡面也需要去檢查許可權是否被授予
3、申請許可權
ActivityCompat.requestPermissions(activity, permission, requestCode);
需要注意的是:這個permission是字串陣列。