zoukankan      html  css  js  c++  java
  • Android复习(三)清单文件中的元素——>path-permission、permission、permission-group、permission-tree

    <path-permission>

    语法:
        <path-permission android:path="string"
                         android:pathPrefix="string"
                         android:pathPattern="string"
                         android:permission="string"
                         android:readPermission="string"
                         android:writePermission="string" />
    

      

    包含于:
    <provider>
    说明:
    定义内容提供程序中特定数据子集的路径和所需权限。您可以多次指定此元素,以提供多个路径。
    属性:
    android:path
    内容提供程序数据子集的完整 URI 路径。只能授予对由此路径标识的特定数据的相应权限。用于提供搜索建议内容时,必须附加有“/search_suggest_query”。
    android:pathPrefix
    内容提供程序数据子集的 URI 路径的初始部分。可以授予对路径共有此初始部分的所有数据子集的相应权限。
    android:pathPattern
    内容提供程序数据子集的完整 URI 路径,但可以使用以下通配符:
    • 星号(“*”)。此通配符匹配出现零次到多次的紧邻前面的字符的一个序列。
    • 句点后跟星号(“.*”)。此通配符匹配零个或多个字符的任意序列。

    由于在从 XML 读取字符串时(在将其解析为模式之前)将“”用作转义字符,因此您需要进行双重转义。例如,字面量“*”将编写为“\*”,字面量“”将编写为“\”。这基本上与采用 Java 代码构造字符串时需要编写的内容一样。

    如需详细了解这些类型的模式,请参阅 PatternMatcher 类中的 PATTERN_LITERALPATTERN_PREFIX 和 PATTERN_SIMPLE_GLOB 的说明。

    android:permission
    客户端要读取或写入内容提供程序的数据而必须具备的权限的名称。您可以使用此属性来方便地设置适用于读取和写入的单项权限。不过,readPermission 和 writePermission 属性优先于此属性。
    android:readPermission
    客户端要查询内容提供程序而必须具备的权限。
    android:writePermission
    客户端要对由内容提供程序控制的数据进行更改而必须具备的权限。

    <permission>

    语法:
    <permission android:description="string resource"
                    android:icon="drawable resource"
                    android:label="string resource"
                    android:name="string"
                    android:permissionGroup="string"
                    android:protectionLevel=["normal" | "dangerous" |
                                             "signature" | ...] />
    

      

     
    包含于:
    <manifest>
    说明:
    声明可用于限制对此应用或其他应用的特定组件或功能的访问权限的安全权限。如需详细了解权限的工作原理,请参阅简介中的权限部分以及安全与权限文档。
    属性:
    android:description
    权限的用户可读说明,比标签更长,信息更丰富。该说明可能会显示以向用户说明权限 - 例如,当系统询问用户是否向其他应用授予权限时。

    此属性必须设置为对字符串资源的引用;与 label 属性不同,它不能是原始字符串。

    android:icon
    对表示权限的图标的可绘制资源的引用。
    android:label
    可向用户显示的权限的名称。

    为方便起见,您可以在开发应用时将此标签直接设置为原始字符串。不过,当准备好发布应用时,应将标签设置为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。

    android:name
    权限的名称。这是将在代码中(例如,在 <uses-permission> 元素和应用组件的 permission 属性中)用于引用权限的名称。

    注意:系统不允许多个软件包声明具有相同名称的权限,除非所有软件包都使用相同的证书进行签名。如果某个软件包声明了一个权限,则系统不允许用户安装具有相同权限名称的其他软件包,除非这些软件包使用与第一个软件包相同的证书进行签名。为了避免命名冲突,我们建议为自定义权限使用反向域式命名,例如 com.example.myapp.ENGAGE_HYPERSPACE

    android:permissionGroup
    将此权限分配给一个组。此属性的值是该组的名称,必须使用此应用或其他应用中的 <permission-group> 元素声明。如果未设置此属性,则此权限不会属于某个组。
    android:protectionLevel

    说明权限中隐含的潜在风险,并指示系统在确定是否将权限授予请求授权的应用时应遵循的流程。

    每个保护级别都包含基本权限类型以及零个或多个标记。例如,"dangerous" 保护级别没有标记。相反,保护级别 "signature|privileged" 是 "signature" 基本权限类型和 "privileged" 标记的组合。

    下表列出了所有基本权限类型。如需查看标记列表,请参阅 protectionLevel

    含义
    normal 默认值。具有较低风险的权限,此类权限允许请求授权的应用访问隔离的应用级功能,对其他应用、系统或用户的风险非常小。系统会自动向在安装时请求授权的应用授予此类权限,无需征得用户的明确许可(但用户始终可以选择在安装之前查看这些权限)。
    dangerous 具有较高风险的权限,此类权限允许请求授权的应用访问用户私人数据或获取可对用户造成不利影响的设备控制权。由于此类权限会带来潜在风险,因此系统可能不会自动向请求授权的应用授予此类权限。例如,应用请求的任何危险权限都可能会向用户显示并且获得确认才会继续执行操作,或者系统会采取一些其他方法来避免用户自动允许使用此类功能。
    signature 只有在请求授权的应用使用与声明权限的应用相同的证书进行签名时系统才会授予的权限。如果证书匹配,则系统会在不通知用户或征得用户明确许可的情况下自动授予权限。
    signatureOrSystem

    "signature|privileged" 的旧同义词。在 API 级别 23 中已弃用。

    系统仅向位于 Android 系统映像的专用文件夹中的应用或使用与声明权限的应用相同的证书进行签名的应用授予的权限。不要使用此选项,因为 signature 保护级别应足以满足大多数需求,无论应用安装在何处,该保护级别都能正常发挥作用。“signatureOrSystem”权限适用于以下特殊情况:多个供应商将应用内置到一个系统映像中,并且需要明确共享特定功能,因为这些功能是一起构建的。

    <permission-group>

    语法:
    <permission-group android:description="string resource"
                          android:icon="drawable resource"
                          android:label="string resource"
                          android:name="string" />
    

      

    包含于:
    <manifest>
    说明:
    声明相关权限的逻辑分组的名称。各个权限通过 <permission> 元素的 permissionGroup 属性加入权限组中。权限组中的成员一起显示在界面中。

    请注意,此元素并不声明权限本身,而只声明可以放置权限的类别。如需了解如何声明权限以及将权限分配到权限组中,请参阅 <permission> 元素。

    属性:
    android:description
    描述权限组的用户可读文本。文本应比标签更长且更具说明性。此属性必须设置为对字符串资源的引用。与 label 属性不同,它不能是原始字符串。
    android:icon
    表示权限的图标。此属性必须设置为对包含图片定义的可绘制资源的引用。
    android:label
    权限组的用户可读名称。为方便起见,您可以在开发应用时将此标签直接设置为原始字符串。 不过,当准备好发布应用时,应将标签设置为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。
    android:name
    权限组的名称。这是可以分配给 <permission> 元素的 <permissionGroup> 属性的名称。

    <permission-tree>

    语法:
    <permission-tree android:icon="drawable resource"
                         android:label="string resource" ]
                         android:name="string" />
    

      

    包含于:
    <manifest>
    说明:
    声明权限树的基名。应用拥有树中所有名称的所有权。它可以通过调用 PackageManager.addPermission() 动态地向树中添加新权限。树中的名称由句点(“.”)分隔。例如,如果基名为 com.example.project.taxes,则可能会添加如下权限:

    com.example.project.taxes.CALCULATE
    com.example.project.taxes.deductions.MAKE_SOME_UP
    com.example.project.taxes.deductions.EXAGGERATE

    请注意,此元素并不声明权限本身,而只声明可将更多权限放入其中的命名空间。如需了解如何声明权限,请参阅 <permission> 元素。

    属性:
    android:icon
    一个表示树中所有权限的图标。必须将此属性设为对包含图片定义的可绘制资源的引用。
    android:label
    组的用户可读名称。为方便起见,可直接将标签设为原始字符串,以便进行快速粗略的编程。不过,当准备好发布应用时,应将标签设为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。
    android:name
    位于权限树底部的名称。它充当树中所有权限名称的前缀。应使用 Java 样式的范围限定机制来确保名称的唯一性。名称的路径中必须包含两个以上由句点分隔的段。例如,可以使用 com.example.base,但不能使用 com.example
  • 相关阅读:
    Linux系统介绍(二)文件系统结构
    为Docker Swarm添加调度策略
    Docker 三剑客之 Docker Swarm
    Hadoop中文文档
    hadoop 学习笔记:mapreduce框架详解
    Java进阶-- GUI
    ceph(8)--关于Ceph PGs
    今天在学习NTP时发现了2个网站
    开始学红帽的RHCE课堂有2次课了,要记下自己的学习经历
    Switch能否用string做参数
  • 原文地址:https://www.cnblogs.com/developer-wang/p/12626524.html
Copyright © 2011-2022 走看看