1permission 标签里面的全部参数
<permission android:description="@string/description" android:label="@string/label" android:name="android.permission.SEND_SMS" android:permissiongroup="android.permission-group.COST_MONEY" android:protectionlevel="dangerous"></permission>
这个xml可以认为是系统apk使用的AndroidManifest.xml,该apk使用系统的私钥进行签名。
name:权限的名字,uses-permisson使用的。
permissionGroup:权限的分类,在提示用户安装时会把某些功能差不多的权限放到一类。
protectionLevel:分为Normal、Dangerous、Signature、SignatureOrSystem,我们后面会着重讲这个。
label:提示给用户的权限名。
description:提示给用户的权限描述。
2、protectionLevel
(1)Normal
权限被声明为Normal级别,任何应用都可以申请,在安装应用时,不会直接提示给用户,点击全部才会展示。
(2)Dangerous
权限被声明为Dangerous级别,任何应用都可以申请,在安装应用时,会直接提示给用户。
(3)Signature
权限被声明为Signature级别,只有和该apk(定义了这个权限的apk)用相同的私钥签名的应用才可以申请该权限。
frameworks/base/core/res/AndroidManifest.xml声明的权限为Signature级别,那么只有Android官方使用相同私钥签名的应用才可以申请该权限。
(4)SignatureOrSystem
权限被声明为SignatureOrSystem级别,有两种应用可以申请该权限。
1)和该apk(定义了这个权限的apk)用相同的私钥签名的应用
2)在/system/app目录下的应用