<permission>仅在清单标记下,实际意味着什么?</permission>

时间:2013-12-23 10:39:41

标签: android permissions manifest

最近,当我分析一些代码时,我发现有一个权限标记,它位于清单标记之后,而不是在活动标记或接收者标记之类的任何其他标记下使用的事件。

我理解在某些标记下添加权限标记的原因,例如<activity><receiver>,但不理解使用该标记的含义。

如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="3"
android:versionName="3.0" >
<permission android:name="com.mustakim.myproject.permission.READ_ALL" />
</manifest>

任何人都可以给我任何解释吗?

3 个答案:

答案 0 :(得分:1)

有关

<permission>

来自Documentation

  

description:声明一个安全权限,可用于限制对此应用程序或其他应用程序的特定组件或功能的访问。

因此,由于您正在访问Android的权限,因此您需要使用uses-permission,因为对于此节点,文档说明:

  

请求必须授予应用程序以使其正常运行的权限。

所以你在自己的许可下使用(例如制作其他应用程序可以访问的库,你希望他们声明使用你的库部件),并且当你的应用程序实际需要它的权限时使用它通常有。

答案 1 :(得分:0)

manifest元素是permission element的正确位置。

基本上,它只是声明自定义权限。然后,您可以通过applicationactivityreceiver元素中的android:permission元素引用该客户端来要求

答案 2 :(得分:0)

来自docs

  

权限是限制访问部分代码或设备上数据的限制。限制是为了保护可能被滥用以破坏或损害用户体验的关键数据和代码。

<permission> DECLARES 安全权限。

一旦您使用此标记声明自己的权限,并且您的应用需要访问受此权限保护的功能,您必须声明它使用<uses-permission>的权限,例如:

<manifest . . . >
    <permission android:name="com.mustakim.myproject.permission.READ_ALL" . . . />
    <uses-permission android:name="com.mustakim.myproject.permission.READ_ALL" />
    . . .
    <application . . .>
        <activity android:name="com.mustakim.myproject.MyActivity"
              android:name="com.mustakim.myproject.permission.READ_ALL"
              . . . >
        . . .
        </activity>
    </application>
</manifest>

换句话说,<permission>声明了您自己的权限,然后您使用<uses-permission>来实际声明您的应用/活动需要该权限才能运行。

查看提供的链接,有关于此的详细信息。