今天在慕課網上學習了qndroid老師講解的Android6.0新特性---權限管理,時長46分鐘,老師講得很好,東西也不難,在這做個總結。
在安卓系統6.0以後,也就是target api 23,權限分普通權限和危險權限,像聯網這種普通權限還是和以前一樣,Mainfest清單文件裏面申請就OK了;但是想讀寫SD卡,打電話這種設計用戶隱私的權限就必須在用戶第一次使用是彈窗提示來申請權限了,還有危險權限是分組的,比如有了讀SD卡權限,也就有了寫SD卡權限,這點像Linux的權限分組概念。
如何適配:
1.先判斷是否有權限 ConextCompat.hasPermission();
2.申請權限ActivityCompat.requestPermission(...)
3.重寫回調方法onRequestPermisson(...),做成功和失敗的邏輯處理
封裝:
由於代碼複用性高,可以將其方法封裝到基類中,看老師的代碼。。。
大神來個開源框架:github 上介紹了 PermissonGen
封裝的原理和老師講的差不多,但是裏面通過反射來創建方法,性能可能有影響。
自己斟酌用哪種,明天將項目適配到target23,之前遇到這個問題都是寫到23一下版本來逃避,啊哈哈哈,get小技能一個。