关于Android自定义权限的几个问题

2024-04-29

我正在学习 Android 编程,我已经了解了自定义权限的概念。

根据我的理解,这是自定义权限的工作原理:

'Base app'可以通过声明自定义权限(即使用<permission>清单文件中的标签)和'client app'调用受自定义权限保护的活动和服务需要获取必要的权限(即使用<uses-permission>清单文件中的标签)来调用base app.

但是,我对自定义权限有以下疑问:

  1. 如果自定义权限被声明为危险(即,android:protectionLevel="dangerous"),是否client app安装时需要得到用户的批准吗?如果是这样,用户如何知道这些自定义权限,因为不会有任何自定义权限的文档。
  2. 在安装期间如何client app知道base app是否已经安装在用户的手机中?无论如何,有没有client app想知道这些信息吗?
  3. 一旦client app安装后,如果用户决定删除会发生什么base app?在这种情况下,如果用户尝试使用client app会导致安全异常吗?

我不知道这些问题是否有意义,但这让我想知道自定义权限在实际场景中如何实际工作。

谢谢。


您的问题的答案如下。不过你可以参考一下http://developer.android.com/guide/topics/manifest/permission-element.html http://developer.android.com/guide/topics/manifest/permission-element.html为了更好地理解 Android 权限。

1.是的,如果您声明

android:protectionLevel="dangerous"

那么系统可能不会自动将其授予请求的应用程序。应用程序请求的任何危险权限可能会显示给用户并需要确认才能继续。

定义自定义权限的基本应用程序应该通过提供描述

android:description="string resource"

这是权限定义的示例。希望它是不言自明的。

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

2.据我所知,客户端应用程序在安装时无法看到基础应用程序的存在。但是当客户端App启动时就有可能。不管怎样,权限是由Android系统根据你的android.xml文件授予的。因此,客户端应用程序在安装时不必担心基本应用程序。

3.即使仍然安装了客户端应用程序,也可以删除基础应用程序。它在任何阶段都不会出现任何错误消息或安全异常。但是,当您尝试再次运行客户端应用程序时,您可能会在尝试从客户端应用程序调用基本应用程序活动时收到“找不到活动”异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Android自定义权限的几个问题 的相关文章

随机推荐

  • JQuery DatePicker 和 beforeShowDay

    我拼命尝试使用此功能在我的日期选择器中仅启用特定日期 但是beforeShowDay函数永远不会被触发 即使这不起作用 document ready function initialisation des composants initCo
  • 这个小波变换实现正确吗?

    我正在寻找 FFT 的替代方案来用 python 创建频谱分析仪 我听说小波变换比短时 FFT 更快并且提供更好的时间精度 我查阅了这篇维基百科文章 其中介绍了 Java 中的 Haar 小波变换实现 https en wikipedia
  • 像插入一样更新

    是否可以执行update like insert UPDATE table SET value N N N N Y Y Y N N WHERE my id 1 The problem is that the number of values
  • iOS - 使用隐藏字幕的 AVPlayer

    我正在 iOS 上使用 AVPlayer 来使用 closeCaptionDisplayEnabled 属性 显示电影上的字幕或副标题 hls 或 mp4 但标题不显示任何内容 我不知道为什么 您有什么解决方案可以在电影 hls mp4 上
  • 我的傅立叶逆变换中的尖峰

    我正在尝试在 MATLAB 中比较两个数据集 为此 我需要通过傅里叶变换数据来过滤数据集 对其进行过滤 然后对其进行逆傅里叶变换 然而 当我对数据进行逆傅里叶变换时 我在红色数据集的两端都出现了一个尖峰 图片显示了第一个尖峰 它在开始时应该
  • 如何使无线电输入成为必需?

    我在表单中提供了无线电输入 供用户选择性别 如何使性别成为必需的输入 用户必须选择女性或男性 否则他们会按照通常的方式得到提示required 我尝试添加required如下所示 但它不起作用 用户可以继续而不选择女性或男性 div cla
  • .NET Core 中 Path.TryJoin 相对于 Path.Combine 有什么优势?

    我刚刚开始使用 NET Core 2 1 发现Path TryJoin https learn microsoft com en us dotnet api system io path tryjoin view netcore 2 1 a
  • 如何使用seaborn、python中的彩色气泡图设置数值变量的色调范围?

    我正在尝试使用seaborn创建3D点 x y z 的彩色气泡图 每个坐标都是 0 255 范围内的整数 我希望轴代表 x 和 y 散点气泡的色调和大小代表 z 坐标 代码 import seaborn seaborn set import
  • SQL Server 2008 相对于 SQL Server 2005 有何优势? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • HTML5shiv 仅在 HEAD 部分有效?

    为了使我的网站尽可能快 我更喜欢在文档末尾加载 js 脚本 就在结束正文标记之前 为 HEAD 部分保留 css 但是 我发现下面的 html shiv 代码显然仅在 HEAD 部分实例化时才有效 有人知道解决方法吗 谷歌代码是NOTCDN
  • 将张量的完整值打印到控制台或写入张量流中的文件

    我需要将一个大张量 32 32 3 打印到控制台中 并且我只得到如下输出 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245
  • RCurl 和自签名证书问题

    我在获取时遇到问题RCurl功能getURL访问使用自签名证书的服务器上的 HTTPS URL 我在 Mac OS X 10 9 2 上运行 R 3 0 2 我已阅读FAQ http www omegahat org RCurl FAQ h
  • 如何才能随意关注一个react-select组件呢?

    使用react select v2 我想在用户按下某个键时显示并聚焦于 Select 元素 以下是我尝试过的一些事情或我走过的路 当我设置对 Select 元素的引用并尝试调用 focus上面说没有找到焦点功能 也许我应该以某种方式获取它的
  • Glassfish 3.1.1 上的 OpenJPA 2.1.1 增强问题

    我的问题是这个异常 Caused by
  • C 整数溢出

    我正在使用 C 中的整数 试图探索更多关于何时以及如何发生溢出的信息 我注意到 当我添加两个正数时 其总和会溢出 我总是得到一个负数 另一方面 如果我添加两个负数 其总和溢出 我总是得到一个正数 包括 0 我做了一些实验 但我想知道这是否适
  • Java PrintWriter 不工作

    我只是想将我的二维数组 拼图 写入文件 我有一个双 for 循环 它读取数组中的每个 char 值 并将它们写入文件 我似乎无法在我的代码中找到错误 该文件说当我运行程序时它已被修改 但它仍然是空白的 多谢你们 public void wr
  • 如何在 Visual Studio 2012 RC 中将数据库发布到提供者

    我的 Web 应用程序使用 MS SQL Server 2008 R2 Express 数据库 要在 Visual Studio 2010 中生成数据库脚本 我可以在服务器资源管理器中右键单击我的数据库 然后选择发布到提供程序 但是 Vis
  • 在 ViewPager 中设置操作栏标题

    我的 ViewPager 由许多片段组成 我在 actionBar 内显示片段的标题 并且使用下面的代码来设置标题 由于 ViewPager 还启动相邻片段 我在操作栏中看到下一个片段的标题 正确的处理方法应该是什么在viewpager的a
  • 如何从用户定义的 ansible.cfg 设置 ansible_config 变量

    我有一个目录结构 在其中保存我的剧本 如下所示 home monk Ansible work ansible cfg playbook dir 1 playbook 1 yml playbook dir 2 playbook 2 yml p
  • 关于Android自定义权限的几个问题

    我正在学习 Android 编程 我已经了解了自定义权限的概念 根据我的理解 这是自定义权限的工作原理 Base app 可以通过声明自定义权限 即使用