原始碼在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宣告許可權的基礎上,...