<uses-permission>與<permission>之間的區別與用法。
<uses-permission>用法:
<uses-permission android:name="string" />
爲了保證application的正常運行,需要系統授予app的權限聲明。這個權限是在用戶安裝應用的時候授予的。
android:name的值可以是其他app通過<permission>聲明的,也可以是系統的權限名稱,例如
android.permission.CAMERA或android.permission.READ_CONTACTS等等。
注:uses-permission的權限要求說明,可能會引起app在Android Market中的過濾。
<permission>用法:
<permission android:description="string resource"android:icon="drawable resource"android:label="string resource"android:name="string"android:permissionGroup="string"android:protectionLevel=["normal" | "dangerous" |"signature" | "signatureOrSystem"] />
permission就是自定義權限的聲明,可以用來限制app中特殊組件,特性與app內部或者和其他app之間訪問。
寫了一個引用自定義權限的例子,在安裝app的時候,提示權限:
自定義權限如下:
<permission android:label=”自定義權限”
android:description=”@string/hello”
android:name=”com.example.project.PERMITTED_ACTION”
android:protectionLevel=”normal”
android:icon=”@drawable/ic_launcher”>
</permission>
android:label:權限名字,顯示給用戶的,值可是一個string數據,例如這裏的“自定義權限”。
android:description:比label更長的對權限的描述。值是通過resource文件中獲取的,不能直接寫string值,例如這裏的”@string/hello”。
android:name:權限名字,如果其他app引用該權限需要填寫這個名字。
android:protectionLevel:權限級別,分爲4個級別:
normal:低風險權限,在安裝的時候,系統會自動授予權限給application。
dangerous:高風險權限,系統不會自動授予權限給app,在用到的時候,會給用戶提示。
signature:簽名權限,在其他app引用聲明的權限的時候,需要保證兩個app的簽名一致。這樣系統就會自動授予權限給第三方app,而不提示給用戶。
signatureOrSystem:這個權限是引用該權限的app需要有和系統同樣的簽名才能授予的權限,一般不推薦使用。