IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> uses-permission和permission区别及使用 -> 正文阅读

[移动开发]uses-permission和permission区别及使用

前言

uses-permission和permission的区别

????????permission定义权限

????????uses-permission申请权限

uses-permission(权限申请)

介绍

????????Android 应用必须请求访问敏感用户数据(例如联系人和短信)或某些系统功能(例如相机和互联网访问)的权限。每个权限都由一个唯一的标签标识。例如,需要发送 SMS 消息和访问互联网的应用程序必须在清单中包含以下内容:

<manifest?...?>
????<uses-permission?android:name="android.permission.SEND_SMS"/>
????<uses-permission?android:name="android.permission.INTERNET"?/>
????...
</manifest>

添加自定义权限,如:

<manifest?...?>
????<uses-permission?android:name="com.scc.userprovider.permissionread"/>
<uses-permission?android:name="com.scc.userprovider.permissionwrite"/>
????...
</manifest>

????????权限不仅用于请求系统功能。你还可以限制其他应用与你的应用组件交互的方式。如何自定义权限请往下看。

官方权限大全

站内权限大全

permission(自定义权限)

介绍

????????你的应用可以使用 声明安全权限,可用于限制对此应用或其他应用的特定组件或功能的访问,例如 ContentProvider。

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

android:description:权限说明。此属性必须设置为对字符串资源的引用

例如:

??<permission?
????android:description="哈哈可读说明"
????.../>

报错:AAPT: error: '哈哈可读说明' is incompatible with attribute description (attr) reference.

  • android:icon:权限的图标。

  • android:label向用户显示的权限的名称。可将此标签直接设置为原始字符串。不过,当准备好发布应用时,应将标签设置为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。

  • android:name:用于引用权限的名称。(例如,在元素和应用组件的 permission 属性中)

  • android:permissionGroup:将此权限分配给一个组。如果未设置此属性,则此权限不会属于某个组。

  • android:protectionLevel: 说明权限中隐含的潜在风险,并指示系统在确定是否将权限授予请求授权的应用时应遵循的流程。下表列出了所有基本权限类型。

    • normal:默认值。具有较低风险的权限。系统会自动向在安装时请求授权的应用授予此类权限,无需征得用户的明确许可(但用户始终可以选择在安装之前查看这些权限)。

    • dangerous:具有较高风险的权限。由于此类权限会带来潜在风险,因此系统可能不会自动向请求授权的应用授予此类权限

    • signature 只有在请求授权的应用使用与声明权限的应用相同的证书进行签名时系统才会授予的权限。如果证书匹配,则系统会在不通知用户或征得用户明确许可的情况下自动授予权限。

    • signatureOrSystem不要使用此选项,因为 signature 保护级别应足以满足大多数需求,无论应用安装在何处,该保护级别都能正常发挥作用。signatureOrSystem权限适用于以下特殊情况:多个供应商将应用内置到一个系统映像中,并且需要明确共享特定功能,因为这些功能是一起构建的。

permission样例

应用Demo(com.scc.cp)和其他应用(com.scc.ha)

1.先使用定义一个权限

????<permission?android:description="@string/permission_description"
????????android:icon="@mipmap/ic_launcher"
????????android:label="permissionLabel"
????????android:name="com.scc.userprovider.permission"
????????android:protectionLevel="normal"/>

2.provider组件设置权限

????<provider
????????android:authorities="com.scc.userprovider"
????????android:name="com.scc.cp.UserProvider"
????????android:permission="com.scc.userprovider.permission"
????????android:exported="true"/>

3.其他应用(com.scc.ha)使用com.scc.cp包加权限的UserProvider

????????啥也不做直接操作:

Process:?com.scc.ha,?PID:?14922
java.lang.SecurityException:?Permission?Denial:?opening?provider?com.scc.cp.UserProvider?from?
ProcessRecord{5d7db58?14922:com.scc.ha/u0a889}?(pid=14922,?uid=10889)?
requires?com.scc.userprovider.permission?or?com.scc.userprovider.permission

????????报错显示缺少com.scc.userprovider.permission权限

?????????缺少权限,咱就申请权限:

<uses-permission?android:name="com.scc.userprovider.permission"/>

????????然后就可以美滋滋的使用com.scc.cp包中的provider数据了。

permission官方文档

permission-group(自定义权限组)

介绍

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

????????声明相关权限的逻辑分组的名称。各个权限通过 元素的 permissionGroup 属性加入权限组中。权限组中的成员一起显示在界面中。

????????注意此元素并不声明权限本身,而只声明可以放置权限的类别。

????????permission-group属性介绍跟permission类似,就不多做介绍了。

permission-group样例

应用Demo(com.scc.cp)和其他应用(com.scc.ha)

1.先使用定义一个权限组

????<permission-group
????????android:name="com.scc.userprovider.permissiongroup"
????????android:description="@string/userprovider_permission_group_description"
????????android:icon="@mipmap/ic_launcher"
????????android:label="GroupLabel"/>

2.添加组员

????<permission
????????android:name="com.scc.userprovider.permissionread"
????????android:description="@string/userprovider_permission_read_description"
????????android:icon="@mipmap/ic_launcher"
????????android:label="readLabel"
????????android:permissionGroup="com.scc.userprovider.permissiongroup"
????????android:protectionLevel="normal"/>
????<permission
????????android:name="com.scc.userprovider.permissionwrite"
????????android:description="@string/userprovider_permission_write_description"
????????android:icon="@mipmap/ic_launcher"
????????android:label="writeLabel"
????????android:permissionGroup="com.scc.userprovider.permissiongroup"
????????android:protectionLevel="normal"/>

3.provider组件设置权限

??<provider
????android:authorities="com.scc.userprovider"
????android:name="com.scc.cp.UserProvider"
????android:writePermission="com.scc.userprovider.permissionwrite"
????android:readPermission="com.scc.userprovider.permissionread"
????android:exported="true"/>

4.其他应用(com.scc.ha)使用com.scc.cp包加权限的UserProvider

????????啥也不做直接操作同样会报上面缺少权限的错误。

????????咱们先申请权限

<uses-permission?android:name="com.scc.userprovider.permissionread"/>
<uses-permission?android:name="com.scc.userprovider.permissionwrite"/>

????????然后就可以美滋滋的使用com.scc.cp包中的provider数据了。

permission-group官方文档

齐活,哪里有问题,欢迎指导。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:09:58  更:2021-08-30 12:12:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:39:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码