<path-permission>

语法:
  1. <path-permission android:path="string"
  2. android:pathPrefix="string"
  3. android:pathPattern="string"
  4. android:permission="string"
  5. android:readPermission="string"
  6. 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>

语法:
  1. <permission android:description="string resource"
  2. android:icon="drawable resource"
  3. android:label="string resource"
  4. android:name="string"
  5. android:permissionGroup="string"
  6. android:protectionLevel=["normal" | "dangerous" |
  7. "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>

语法:
  1. <permission-group android:description="string resource"
  2. android:icon="drawable resource"
  3. android:label="string resource"
  4. android:name="string" />

  

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

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

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

<permission-tree>

语法:
  1. <permission-tree android:icon="drawable resource"
  2. android:label="string resource" ]
  3. 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

Android复习(三)清单文件中的元素——>path-permission、permission、permission-group、permission-tree的更多相关文章

  1. [android]清单文件中MAIN与LAUNCHER的区别

    原文:[android]清单文件中MAIN与LAUNCHER的区别 MAIN 和 LAUNCHER,之前一直不注意这两个有区别,写程序的时候都放到一个filter中,前两天面试问到了,总结一下: MA ...

  2. Android Developer:合并清单文件

    使用Android Studio而且基于Gradle构建.每一个App能在多个位置包括清单文件,比如在src/main文件夹下productFlavor.库.Android ARchive(AAR) ...

  3. python 从2个文件中提取不相同的内容并输出到第三个文件中

    #-*- coding: UTF-8 -*- import re import sys import os   str1=[] str2=[] str_dump=[] fa=open("A. ...

  4. Tomcat/conf/server.xml文件中docBase和path的说明

    Tomcat的项目部署方式有以下三种: 1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法.2.在tomcat安装目录中有一个conf文件夹,打 ...

  5. Android软键盘在清单文件中所有配置含义

    android:windowSoftInputMode 活动的主窗口如何与包含屏幕上的软键盘窗口交互.这个属性的设置将会影响两件事情: 1>     软键盘的状态——是否它是隐藏或显示——当活动 ...

  6. (备忘)android清单文件中<meta-data>标签,以及<intent-filter>下的<data>标签及其他标签

    1.metadata可以写在application下也可以写在activity下,作为全局或activity内共享的数据 以键值对形式保存 <meta-data android:name=&qu ...

  7. Android ---------- 清单文件中Activity常规设置

    <activity android:name="xxxxx" android:alwaysRetainTaskState="true" android:c ...

  8. Android 的四大组件都需要在清单文件中注册吗?

    Activity . Service . ContentProvider 如 果 要 使 用 则 必 须 在 AndroidManifest.xml 中 进 行 注 册 , 而BroadcastRec ...

  9. struts.xml文件中package元素的各大属性讲解

    Struts2中的包: Struts2使用包来组织Action,将Action放在包下来定义,通过package元素配置一个包,通过package的子元素action来定义一个Action: Stru ...

  10. Android笔记——在布局文件中插入另一个布局文件

    假如有一个布局文件A.xml想把另外一个布局文件B.xml引进其布局,则可以通过下面的代码 <include layout="@layout/B" />

随机推荐

  1. 【WEB】URL文件

    早些年接触电脑的时候就有这个东西,去网站上下载盗版游戏,网站会附加这种URL文件 双击运行之后是打开浏览器跳转到该文件描述的网址 我从来没想过这东西里面写的是什么 百度经验: https://baij ...

  2. 通过内存映射的方式向lcd屏幕输出几个圆

    /************************************************* * * file name:color.c * author :momolyl@126.com * ...

  3. 运用Npcap库实现SYN半开放扫描

    Npcap 是一款高性能的网络捕获和数据包分析库,作为 Nmap 项目的一部分,Npcap 可用于捕获.发送和分析网络数据包.本章将介绍如何使用 Npcap 库来实现半开放扫描功能.TCP SYN 半 ...

  4. .NET MAUI 布局

    先看一段代码的效果: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns=& ...

  5. mfc的ClistCtrl控件列的排序

    在网上看了许多排序的方法,都没看懂,初学者的悲剧,然后就自己弄了个,请大家指正. ClistCtrl控件的行带着一个结构体,不过那结构体不好懂,看得眼花缭乱.好多也弄不明白,就自己写了个结构体,把一行 ...

  6. C# WinForm 解除资源文件的占用并删除

    1.删除未解除占用的资源时 2.调用Windows API函数 解除文件占用 [DllImport("kernel32.dll", SetLastError = true)] [r ...

  7. MyBatis日志工厂

    目录 日志工厂 标准日志实现 Log4j 使用步骤: 日志工厂 我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可 ...

  8. CEIT算法训练-双指针部分题解(全12题)

    代码宏定义以及框架约定 #include <bits/stdc++.h> using namespace std; #define IOS ios_base::sync_with_stdi ...

  9. 调用ArrayList的add方法抛异常UnsupportedOperationException

    调用ArrayList的add方法抛异常UnsupportedOperationException 对于一些想要把数组转成List的需求,可能会使用到Arrays.asList()获取List对象,但 ...

  10. linux修改limits.conf不生效

    正常情况下, /etc/security/limits.conf 的改动,重新登录就可以生效, 我遇到的问题最后的解决方案是重启虚拟机解决了,也参考了很多网上的文章,整理记录一下 一.修改方法 1.临 ...