天天看點

Android 6.0 權限問題

android6.0的運作時權限細節就不贅述了,詳細可見文末參考資料的第2篇,詳細講解下于此相關的三個api(個人了解)。

函數定義:

Android 6.0 權限問題

該函數傳回一個int,如果傳回的整形值等于packagemanager.permission_granted說明已經擁有改權限,如果傳回值等于packagemanager.permission_denied說明沒有擁有權限。

注:packagemanager.permission_granted和packagemanager.permission_denied是packagemanager的兩個int常量,專門用于表示是否擁有權限。
Android 6.0 權限問題

第一步檢查權限的結果如果是packagemanager.permission_granted,那麼該幹嘛幹嘛去,因為你已經擁有改權限(例如使用攝像頭),如果檢查結果是packagemanager.permission_denied,那麼就要申請到權限才能幹你想幹的。

Android 6.0 權限問題

主要說明該函數的三個參數(最讓我難以了解的是第三個參數)

activity就是要申請權限的activity,寫this就可以。

這是一個string數組,該數組包含我們要申請的權限清單,比如要申請的權限有:manifest.permission.read_contacts等好幾個,就把這些權限(string)添加到該數組中。

注:這說明可以批量申請權限

這是一個int,是程式猿自定義的一個參數,用法如下:

那麼該參數有何用呢?請看第三個函數onrequestpermissionsresult。

第二個函數(requestpermissions)執行完之後,會回調onrequestpermissionsresult,把請求結果告訴請求者,成或者不成總得有個說法不是!程式猿需要重寫這個方法,對不同的結果執行不同的對策。

注意case之後的代碼,這就是我們之前定義的那個常量,對了,他的作用就是定位你申請的是那個權限,前面也說了,可以一次申請多個權限,那麼怎麼對應我們申請的權限和申請結果呢?就靠這個int常量了。

參考資料(絕對幹貨):

<a href="http://blog.csdn.net/lmj623565791/article/details/50709663">http://blog.csdn.net/lmj623565791/article/details/50709663</a>

<a href="https://developer.android.com/training/permissions/requesting.html?hl=zh-cn#perm-request">https://developer.android.com/training/permissions/requesting.html?hl=zh-cn#perm-request</a>

繼續閱讀