1. 程式人生 > >安卓6.0動態授權

安卓6.0動態授權

安卓 動態授權


在Android 5.1 (API level 22) 及其以下版本上,系統在APP安裝時要求用戶授權所有Manifest申請的權限,否則APP不能安裝,並且安裝後權限也撤銷不了。

http://7jpolu.com1.z0.glb.clouddn.com/pre-marshmallow-permission.jpg


而在Android 6.0(Marshmallow_棉花糖)及其以上版本上,系統在APP安裝時授權所有普通權限,危險權限需要在應用運行使用時(比如當用戶按下”相機拍照“按鈕後)動態讓用戶授權。

http://7jpolu.com1.z0.glb.clouddn.com/marshmallow-permission.png

http://ww1.sinaimg.cn/large/6a195423jw1ezwtttfjp1j20u01hc0vr.jpg

http://ww2.sinaimg.cn/large/6a195423jw1ezxulzbeu2j20iq0ggt9y.jpg


6.0系統就對權限進行了分類,一般為下述幾類:

①正常(Normal Protection)權限

正常權限對用戶隱私沒有較大影響或者不會打來安全問題;安裝後就賦予這些權限,不需要顯示提醒用戶,用戶也不能取消這些權限。

正常權限主要是關於網絡、藍牙、時區、快捷方式等方面,只要在Manifest.xml指定了這些權限,就會默認被授予,並且不能撤銷。


②危險(Dangerous)權限

危險權限是運行時權限主要處理的對象,這些權限可能引起隱私問題或者影響其他程序運行。

Android6.0+需要在manifest中申請,並且通過發送Intent讓用戶在設置界面進行勾選。

如果將targetSdkVersion設置低於23,那麽在6.0的系統上不會為這個應用開啟運行時權限機制,即按照以前的方式處理。


一個組內某個權限被允許,該組的其他權限也是被允許的。舉一個例子,如果你的應用授權了讀取聯系人的權限,那麽你的應用也是被賦予了寫入聯系人的權限,因為讀取聯系人和寫入聯系人這兩個權限都屬於聯系人權限分組。


③特殊(Particular)權限

特殊權限就是一些特別敏感的權限,一般不會應用申請,主要由兩個

SYSTEM_ALERT_WINDOW,設置懸浮窗,進行一些黑科技

WRITE_SETTINGS 修改系統設置,如更改手機來電鈴聲


④其他權限(一般很少用到)


安卓6.0動態授權