標籤:安卓 動態授權
在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動態授權