1、申明权限:在Manifest文件中使用Permission标签定义自己的权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.costom.permission">
<permission
android:name="com.costom.permission.TEST"
android:description=""
android:permissionGroup="com.costom.permission.group.TEST"
android:protectionLevel="signature" />
</manifest>
- permissionGroup,指定该权限的组。
- protectionLevel,指定保护级别。
Android将权限分为若干个保护级别,normal, dangerous, signature等。normal就是正常权限,该权限并不会给用户或者设备的隐私带来风险;dangerous就是危险权限,该级别的权限通常会给用户的数据或设备的隐私带来风险;signature指的是,只有相同签名的应用才能使用该权限。
2、自定义权限的使用:只需要在声明四大组件的时候增加android:permission字段就可以,如:
<activity android:name=".DangerousActivity"
android:permission="com.costom.permission.TEST">
<intent-filter>
<action android:name="com.costom.intent.action.TEST"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
自定义权限注意点
1、两个应用声明了相同的权限
- Android不允许两个不同的应用定义一个相同名字的权限(除非这两个应用拥有相同的签名),所以在命名的时候,需要特别注意。
- 拥有相同自定义权限的软件必须使用同样的签名,否则后一个程序无法安装。