Android 6.0及以上權限處理

Android 6.0及以上權限處理

--

為了保證Android系統(tǒng)的完整性以及用戶的隱私性,所有的APP都運行在一個單獨的沙盒中,如果想要訪問沙盒之外的資源必須有明確指定是否有該權限,在Android 6.0之前,只要指明了權限系統(tǒng)一般都會自動授權,也有需要詢問用戶是否授權。但是在Android 6.0以及后對于危險權限必須用戶同意后才能進行。

1.定義應用所需權限

App Manifest 中定義所需權限,只定義所需的,不使用的不要定義。

2.處理運行時權限請求

1.權限組概念
一個或者多個權限組成一個權限組,例如READ_CONTACTS , WRITE_CONTACTSGET_ACCOUNTS 同屬CONTACTS權限組,申請其中任一個權限系統(tǒng)都會提示同樣的提示,且用戶允許其中一個權限則權限組中其他權限自動允許。
2.權限分類
權限分成正常權限和危險權限,如果不會威脅到用戶隱私的權限通常會在安裝時自動允許,而危險權限即使你再Mainifest列出來也會顯式要用戶處理。下面表中的危險權限在你APP targetSdkVersion 大于等于23是需要特殊處理。
Dangerous permissions and permission groups
Dangerous permissions and permission groups

Dangerous permissions and permission groups
Dangerous permissions and permission groups

3. 檢測權限和請求權限

1. 判斷是否有相應權限

int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,Manifest.permission.ACCESS_FINE_LOCATION);返回的結果 permissionCheck 如果是允許則返回PackageManager.PERMISSION_GRANTED 否則 返回PERMISSION_DENIED,如果是允許了則直接使用。

2.請求權限

ActivityCompat.shouldShowRequestPermissionRationale(activity, p); 返回是否需要一個我們自己定義的解釋,默認返回 false 當用戶選擇拒絕后返回true,拒絕的同是選擇不再詢問則返回false

ActivityCompat.requestPermissions(activity, ps, requestCode);請求相應權限,效果如下:

requestPermissions
requestPermissions

源碼

APK

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容