Android 6.0許可權管理筆記
Android系統6.0之後的應用許可權管理策略做了改動,把許可權做了安全的劃分:普通許可權和需要申請的使用者許可權。
普通許可權
如果你的應用僅支援6.0以下手機,不需要考慮,系統不會做這個檢查策略。
如果你的應用支援6.0以上且不需要訪問使用者隱私相關的意圖,這個也不需要做檢查。(除了使用者許可權的9大安全,其他照舊)
普通許可權處理方式只需要在AndroidManifest.xml中直接申請即可,使用者在安裝的時候知道有這個許可權就行。使用者許可權
該許可權是在6.0以上需要做提前宣告並提示使用者手動允許的才可以繼續操作,否則應用會出現崩潰。
該部分應用涉及9大分組,每個分組只要同意了一個許可權,同分組的其他全向一併獲取,也就是說9大分組告訴使用者應用會涉及他的哪部分資訊。所有的許可權可以檢視Manifest.java檢視
//1.日曆相關
public static final String CALENDAR = "android.permission-group.CALENDAR";
//2.相機相關
public static final String CAMERA = "android.permission-group.CAMERA";
//3.聯絡人相關
public static final String CONTACTS = "android.permission-group.CONTACTS";
//4.位置相關
public static final String LOCATION = "android.permission-group.LOCATION";
//5.麥克風相關
public static final String MICROPHONE = "android.permission-group.MICROPHONE";
//6.手機資訊相關
public static final String PHONE = "android.permission-group.PHONE";
//7.感測器相關
public static final String SENSORS = "android.permission-group.SENSORS";
//8.簡訊相關
public static final String SMS = "android.permission-group.SMS";
//9.儲存相關
public static final String STORAGE = "android.permission-group.STORAGE";
使用者許可權使用也需要現在AndoridManifest.xml中宣告,並且在執行時需要做授權檢查。
相關API
//檢查是否已經授權某許可權
//PackageManager.PERMISSION_GRANTED 0
//PackageManager.PERMISSION_DENIED -1
ActivityCompat.checkSelfPermission(Activity activity, Stirng permission)
//請求授權
requestPermissions(Activity activity, String[] permissions,int requestCode)
//授權回撥
onRequestPermissionsResult(int requestCode, String[] permissions,int[] grantResults)
目前高版本的AS已經自動檢測存在許可權風險的程式碼,如果自己已經封裝或者確定獲取了許可權,可去掉該相關Lint檢查或try一下。(有程式碼潔癖的人絕對忍受不了報個紅叉)
相關文章
- Android6.0動態許可權管理庫Android
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- Android許可權管理之Android 6.0執行時許可權及解決辦法Android
- 13.管理許可權(筆記)筆記
- Android 6.0 執行時許可權管理最佳實踐Android
- Android 採用AOP方式封裝6.0許可權管理Android封裝
- Android拍照,相簿選擇圖片以及Android6.0許可權管理Android
- Android許可權管理之RxPermission解決Android 6.0 適配問題Android
- Android 6.0 執行時許可權詳解Android
- mysql 許可權控制筆記MySql筆記
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- Android 6.0 在執行時請求許可權Android
- Android6.0許可權的動態適配Android
- 原生Android之(6.0及以上)許可權申請Android
- Android6.0執行時許可權機制Android
- 談談Android 6.0執行時許可權理解Android
- Android許可權管理之Permission許可權機制及使用Android
- 「Android6.0許可權適配| 掘金技術徵文 」Android
- android 6.0許可權申請機制(簡單案例)Android
- Android 6.0 執行時許可權處理完全解析Android
- 學習筆記 物件許可權筆記物件
- Linux-許可權管理(ACL許可權)Linux
- Django restframework 框架筆記 (二) 許可權DjangoRESTFramework框架筆記
- Android系統許可權和root許可權Android
- PostgreSQL:許可權管理SQL
- Mysql——許可權管理MySql
- Mysql 許可權管理MySql
- oracle 許可權管理Oracle
- 4、許可權管理
- sql許可權管理SQL
- 許可權管理策略
- MySQL許可權管理MySql
- MYSQL學習筆記13: DCL許可權控制(使用者許可權操作)MySql筆記
- Android6.0許可權適配及相容庫的實現Android
- React-Native之Android(6.0及以上)許可權申請ReactAndroid
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- Linux 筆記分享九:ACL 許可權Linux筆記
- Linux 筆記分享十:sudo 許可權Linux筆記