Android6 0執行時許可權擴充套件篇

2021-08-20 07:34:26 字數 1887 閱讀 8349

原始碼在github上

關於android6.0執行時許可權的介紹、如何檢查許可權、授予許可權,請看另一篇文章。

android6.0動態許可權,以及如何同時授予多個許可權

於是引用了另一種思路,在歡迎頁面進行部分授權,使用者拒絕授權後,不再彈出授權對話方塊,直接進入首頁。在進入首頁後,遇到需要授權的地方,再單獨授權;當使用者拒絕後,自定義乙個彈窗,提示使用者手動去開啟許可權。通過這樣的方法,極大的提公升了使用者的體驗度

1、檢查許可權哪些許可權未授予,用list集合儲存未授予的許可權,當list集合不為空的時候,請求授予許可權的**,當list集合為空,表示沒有需要授予許可權。

/*** 檢查許可權

*/private void 

checkpermission() 

}/**

* 判斷是否為空

*/if (mpermissionlist.isempty())  else 

}2、響應許可權的**做了修改,不管使用者拒絕還是同業,都進入首頁

/*** 響應授權

* 這裡不管使用者是否拒絕,都進入首頁,不再重複申請許可權

*/@override

public void 

onrequestpermissionsresult(int requestcode, 

@nonnull string permissions, 

@nonnull 

int grantresults) 

}3、下面 以打**為例子,執行的步驟,首先檢查許可權**許可權。

/*** 檢查**許可權

請求許可權,彈出許可權申請對話方塊,會出現兩種情況:

/*** 響應許可權

*/@override

public void 

onrequestpermissionsresult(int requestcode, 

@nonnull string permissions, 

@nonnull 

int grantresults) 

switch (requestcode) 

showcallphone();

break;

default:

super.onrequestpermissionsresult(requestcode, permissions, grantresults);

break; }}

注:這裡進行補充說明,為啥要判斷grantresults為null和長度為0的情況,在部分手機上,當使用者拒絕許可權的時候,grantresults的長度為0,grantresults[0]會出現資料越界崩潰。

崩潰的機型:cam-al00、cam-tl00、cam-tl00h、kiw-tl00、huawei rio-al00、huawei rio-tl00、kiw-tl00h、nem-tl00等,這裡只列舉部分。

完整的**,可以去github上看,github位址

android 6 0 執行時許可權

1.執行時許可權 android6.0版本以前也就是android sdk版本小於23 android6.0和以上的版本 2.許可權的分類 普通許可權就是不會直接給使用者隱私權帶來風險。如果您的應用在其清單中列出了正常許可權,系統將自動授予該許可權。access location extra com...

Android 6 0執行時許可權管理

執行時許可權管理 定義 但是android 6.0以後android m把許可權管理做了加強處理,除了需要在manifest申明,在使用到相關功能時,有些許可權還需重新授權方可使用,所以就把這些需要重新授權方可使用的許可權稱之為執行時許可權 dangerous permission 而在manife...

Android 6 0 執行時許可權處理

android 6.0在我們原有的androidmanifest.xml宣告許可權的基礎上,又新增了執行時許可權動態檢測,以下許可權都需要在執行時判斷 身體感測器日曆攝像頭通訊錄地理位置麥克風 簡訊儲存空間 android 6.0在我們原有的androidmanifest.xml宣告許可權的基礎上,...