11.6.1. 在 Manifest 文件中定义权限
11.6.1.在 Manifest 文件中定义权限
首先是给出权限的定义。解释它们是什么、如何使用、处于何种保护级别。
例 11.11. 在Manifest文件中定义权限
<manifest>
...
<permission android:name="com.marakana.yamba.SEND_TIMELINE_NOTIFICATIONS" <!-- -->
android:label="@string/send_timeline_notifications_permission_label" <!-- -->
android:description="@string/send_timeline_notifications_permission_description" <!-- -->
android:permissionGroup="android.permission-group.PERSONAL_INFO" <!-- -->
android:protectionLevel="normal" /> <!-- -->
<!-- -->
<permission android:name="com.marakana.yamba.RECEIVE_TIMELINE_NOTIFICATIONS"
android:label="@string/receive_timeline_notifications_permission_label"
android:description="@string/receive_timeline_notifications_permission_description"
android:permissionGroup="android.permission-group.PERSONAL_INFO"
android:protectionLevel="normal" />
<!-- -->
<uses-permission android:name="com.marakana.yamba.SEND_TIMELINE_NOTIFICATIONS" />
<uses-permission android:name="com.marakana.yamba.RECEIVE_TIMELINE_NOTIFICATIONS" />
</manifest>
- 权限的名字,作为引用权限的标识符。在这里,我们通过它来保护Timeline更新事件的广播。
- 权限的标签(Label)。它会在安装应用程序的授权步骤显示给用户,作为一个人类可读的权限名称,其内容应尽量做到言简意赅。留意,我们将它的值定义在了string.xml文件中。
- 关于这项权限的描述,用以简介权限的含义与作用。
- 权限组。此项可选,但很有用。通过它,可以将我们的权限归类到系统定义的权限组。也可以定义自己的权限组,但不常见。
- 权限的安全等级,表示这项权限的危险程度,等级越高越危险。其中'normal'表示最低的安全等级。
- 定义另一项权限,用于保护Timeline更新事件的接收。步骤与上相同。
- 给出了这些定义之后,我们仍需为应用程序申请这些权限。这里就同申请系统权限一样了,通过<uses-permissions>标签。
到这里,我们添加了两项自定义的权限,也为应用程序申请了对这两项权限。接下来,我们需要保证广播的发布者与订阅者分别能够符合自己的权限。