当前位置:编程学习 > XML/UML >>

AndroidManifest.xml文件详解(permission)

语法(SYNTAX):

<permissionandroid:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | "signatureOrSystem"] />

被包含于(CONTAINED  IN):

 <manifest>

说明(DESCRIPTION):

这个元素用于声明一个安全权限,以便限制对具体的组件、或组件功能、或其他的应用的访问。

属性(ATTRIBUTES):

android:description

这个属性用于给权限定义一个用户可读的懂的描述,它要比标签更长更详细。它可以显示给用户,以便向用户解释权限的含义---例如,当询问用户是否要给另一个应用程序授予对应的权限的时候,就会把这个属性所定义的说明显示给用户。

android:icon

这个属性要引用一个可绘制的图标资源,用于代表这个权限。

android:label

这个属性定义了一个能够显示给用户的权限名称。

为了方便,在开发应用程序时,这个标签能够直接使用原生的字符串。但是当应用程序要正式发布时,它应用使用一个字符串资源来设置,以便它能够跟用户界面中的其他字符串一样被本地化。

android:name

这个属性定义了权限的名称。它是在程序代码中引用的权限的名称---例如,在一个<uses-permission>元素中和应用程序组件中的permission属性。

这个名称必须是唯一的,因此要使用Java样式的命名规则---例如:com.example.project.PERMITTED_ACTION

android:permissionGroup

这个属性用于把这个权限分配到一个权限组中。这个属性的值是一个权限组的名称,它必须是在本应用程序或另一个应用中用<permission-group>元素声明的权限组。如果这个属性没有被设置,那么这个权限不属于任何权限分组。

android:protectionLevel

特权就意味着潜在的风险,因此在判定是否要把权限授予请求的应用程序时,使用这个属性定义来指示系统应该遵循的过程。它可能是表中的值之一。

 

说明
normal 默认值。这是让请求的应用程序访问独立的应用程序级功能的一个较低风险的权限,它会给另一个应用程序、系统、或用户带来最小化的风险。系统在安装应用程序时会自动的把这种类型的权限授予请求的应用程序,而不需要用户明确的批准(虽然在安装应用程序之前,用户始终可以有选择的查看这些权限)。
dangerous 这个是一个较高风险的授权,它会让请求该权限的应用程序访问私有的用户数据,或者控制用户设备,从而给用户带来负面影响。因为这种权限会引入潜在的风险,因此系统不会自动把这种权限授予请求这个权限的应用程序。例如,应用程序所请求的这些dangerous类型的权限,在确认处理之前,可以显示给用户,或者采用一些其他的方法,以避免用户自动把权限授予所请求的应用程序。
signature 系统只会把这种权限授予具有相同数字签名的应用程序,也就是说,请求该权限的应用程序要与声明该权限的应用程序具有相同的数字签名。如果证书匹配,系统就会自动的把该权限请求权限的应用程序,而不会通知用户,也不会要求用户明确的批准。
signatureOrSystem 系统只会把这种权限授予Android系统镜像中应用程序,或者是那些与系统镜像中具有相同证书签名的应用程序。请避免使用这个选项,因为signature类型的权限应该足以满足大多数工作的需要。SingatureOrSystem权限主要用于某些特定的场景,如:多个厂商有一些要构建在系统镜像中的应用程序,并且它们共享一些明确的特殊功能。
 

 

被引入版本(INTRODUCED IN):

API Level 1

 


摘自 FireOfStar的专栏

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,