系統權限官網知識點

1、權限概述

如果應用在AndroidManifest.xml中申明瞭非危險權限,應用會自動授權,如果是危險權限,那麼應用會通知用戶主動授權該權限。android系統主動通知用戶進行授權的方式取決於android系統版本以及應用的target sdk版本。

1.1 、API Level >= 23 && Target SDK >= 23

如果設備是android 6.0(api level 23)或者更高,並且應用target sdk是23或者更高,應用會在運行時申請權限。用戶可以在任意時間取消權限,所以在應用每次使用某些危險權限相關的api時需要動態檢測是否已經授權。

1.2 、API Level <= 22 OR Target SDK <= 22

如果設備是android 5.1.1(api level 22)或者更低,或者應用target sdk是22或者更低,系統會在安裝時詢問用戶授權。如果有新的權限添加到應用的更新版本,那麼在應用更新時會詢問用戶授權。一旦用戶授權,那麼用戶取消授權的唯一方式就是卸載該應用。android提供的系統列表參見如下網址
權限列表
應用也可以定義和強制使用自定義權限

2、查看系統的權限

adb shell pm list permissions
adb shell pm list permissions -s 以表格的形式列出權限

3、Permission required to install unknown apps

對於target sdk 26及以上,通過接口方法安裝apk包時,必須要申請REQUEST_INSTALL_PACKAGES權限,即

4、普通權限和危險權限

系統權限最常見的區分等級爲危險權限和普通權限。
Dangerous permissions cover areas where the app wants data or resources that involve the user’s private information, or could potentially affect the user’s stored data or the operation of other apps.

5、權限組

所有單個的android危險系統權限都屬於某個權限組。當設備爲android 6.0(api level 23及以上時)並且應用的target sdk是23時:

  1. 當請求一個在AndroidManifest文件中定義的權限時,如果當前應用沒有任何權限與該權限同在一個權限組,那麼系統會顯示一個彈窗向用戶描述應用所申請的權限組。(彈窗不會顯示具體的權限,而是描述該權限)。(the system just tells the user what permission groups the app needs, not the individual permissions.)

  2. 當請求一個在AndroidManifest文件中定義的權限時,如果當前應用有相關權限與該權限同在一個權限組, 那麼系統會自動分配該權限給引用,而不會彈窗。例如,應用申請了讀取聯繫人的權限,那麼再申請寫聯繫人的權限時系統會自動分配該權限。

6、危險權限組

危險權限組

7、自定義權限

爲了強制使用自定義權限,首先必須在AndroidManifest.xml文件中用一個或多個元素申明。
例如,應用想控制其某個activity被其他應用啓動activity權限申明如下:

8、參考

Android System Permissions

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章