地址:https://developer.android.com/guide/topics/security/permissions.htmlhtml
要執行本身的權限,首先要在manifest文件中申明,使用<permission>標籤android
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.me.app.myapp" >
<permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/permlab_deadlyActivity"
android:description="@string/permdesc_deadlyActivity"
android:permissionGroup="android.permission-group.COST_MONEY"
android:protectionLevel="dangerous" />
...
</manifest>
protectionLevel 權限級別app
normal:低風險權限,只要申明就能夠使用,安裝時不用用戶確認ide
dangerous:高風險權限,安裝時須要用戶確認ui
signature:只有當申請權限的用用的數字簽名已申明此權限的應用的簽名相同,才能將權限授予他spa
signatureOrSystem:簽名相同,或申請權限的應用爲系統應用code
permissionGroup
orm
這個屬性是可選的,用於幫助系統展現權限給用戶。一般是設置爲標準的系統組android.Manifest.permission_group xml
android:label和android:description的文字會展現在權限列表和詳情中。htm
全部的組件都有android:permission屬性,命名這個權限用於訪問他們。
Activity權限,用於限制誰可以啓動相關聯的Activity,這個權限會在Content.startActivity()和Activity.startActivityForResult()時候檢查。若是調用者沒有權限就會報SecurityException異常。
Service權限,限制啓動和綁定的服務,在Context.startService(),Context.stopService(),Context.bindService的時候檢查
BroadcastReceiver權限,限制誰可以發送廣播道相關的接受者。這個權限會在Context.sendBroadcast()返回後檢查,失敗後並不會拋出異常給調用者。
ContentProvider權限,限制訪問數據,在執行ContentResolver.query(),ContentResolver.insert(),ContentResolver.update(),ContentResolver.delete()會請求相關權限。