android 6.0出現(xiàn)之后这难,有了很多特性舟误,其中就是增加了權(quán)限檢測,一旦你SDKVersion適配到23姻乓,權(quán)限稍微不注意就會造成應(yīng)用奔潰嵌溢,使用起來邏輯復(fù)雜,并且代碼多糖权,覺得網(wǎng)上肯定有相關(guān)優(yōu)秀權(quán)限優(yōu)化項目堵腹。于是找到Dexter
-
Dexter 使用起來簡單
- 第一 :在Application 初始化 Dexter.initialize(this);
-
第二 :
- 使用下來感覺,權(quán)限申請星澳,最好不要在每個Activity都進(jìn)行權(quán)限申請,可以在歡迎界面一次申請完全旱易,在使用到權(quán)限的方法中在進(jìn)行申請(Dexter在你有權(quán)限的時候禁偎,會直接回調(diào)PermissionGranted)腿堤;
- 使用之后也感覺到好奇,有個小疑問就是Android 官網(wǎng) 提供的方法如暖,我們在檢測權(quán)限的時候步驟
-
調(diào)用請求檢測權(quán)限方法
-
重寫 Activity 的onRequestPermissionsResult (類似于onActivityResult) 然后在方法里笆檀,處理權(quán)限檢測的結(jié)果
But 我們是可以在一個線程中調(diào)用Dexter,它是怎么接受到權(quán)限檢測結(jié)果的
-
采用Debug 代碼模式 盒至,一步一步查看Dexter 執(zhí)行步驟酗洒,發(fā)現(xiàn)
Dexter的思路是,在檢測權(quán)限的時候枷遂,開啟一個完全透明的Activity樱衷,在其中申請權(quán)限并回掉到使用的地方,但是使用的時候酒唉,請注意,在使用線程檢測權(quán)限的控制器未回調(diào)的時候矩桂,不要過早關(guān)閉控制器,會造成檢測權(quán)限回調(diào)用失敗痪伦。
Dexter源代碼看著很簡單(嗯侄榴,差別就在于你有這樣的思維),之所以寫下這個理解网沾,那是因為 我想養(yǎng)成寫的習(xí)慣癞蚕。