关于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自定义权限的几个问题 的相关文章

  • Android自定义控件命名空间问题

    我一直在为 Android 开发自定义控件 尽管我尝试按照建议进行操作here https stackoverflow com questions 4495511 how to pass custom component parameter
  • 毕加索磁盘缓存

    我正在使用 Picasso 从 URL 加载图像 Picasso with getApplicationContext load product getImageUrl into imageView 据我所知 每次都会访问该网址 而不是缓存
  • BluetoothAdapter.getDefaultAdapter() 不返回 null

    这是我的第一篇文章 所以如果我做了一些愚蠢的事情 请告诉我 这个问题可能看起来与其他帖子类似 但或多或 少与我所看到的所有内容相反 关于该项目的事情 我正在开发 android 4 0 4 4 应用程序 我正在使用蓝牙 我正在运行 andr
  • 维护 HttpUrlConnection 调用之间的会话(Native/Webview)

    让我从我做的开始desire 我想制作一个应用程序part native and part webviews Problem 维护本机和 webview 部分之间的会话 My 处理方法 this 我打算实现一个本机登录 其中我向用户展示两个
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 在浏览器中打开 URL,即使我的应用程序为其注册了意图过滤器

    我的应用程序为某些 URL 注册了一个意图过滤器 因为它可以处理来自这些 URL 的数据 但是 在应用程序内部 我想提供一个按钮来在浏览器中打开这样的 URL 也就是说 如果设置了默认浏览器 则在默认浏览器中打开它 否则提供一个选择器 就像
  • 使用 RxJava 限制吞吐量

    我现在遇到的情况很难解释 所以我会写一个更简单的版本来解释这个问题 我有一个Observable from 它发出一系列由ArrayList文件数量 所有这些文件都应上传到服务器 为此 我有一个函数可以完成这项工作并返回一个Observab
  • 如何更改对话框片段内的片段

    我想做一个空的DialogFragment with a LinearLayout然后更改里面的片段LinearLayout 例如 第一个片段是 3 个按钮 facebook google 电子邮件登录 的登录 当有人按下电子邮件时 第 2
  • Android - 多次实例化一个片段?

    我正在创建一个在 ListView 中显示数据的应用程序 数据分为两种类型 热门 收藏夹 我有一个活动和两个片段 片段根据类别显示项目列表 我为此使用了 ListView 然后我有两个fragment layouts 它们在设计上完全相同
  • Android httpclient文件上传数据损坏和超时问题

    我在 Android 中上传图像时遇到问题 我正在使用 apache httpmime 4 1 lib 代码是这样的 MultipartEntity reqEntity new MultipartEntity HttpMultipartMo
  • Spotify 登录错误 INVALID_CLIENT:无效的重定向 URI android

    我正在制作一个包含 Spotify 集成的应用程序 我点击了此链接https developer spotify com technologies spotify android sdk tutorial https developer s
  • 截图显示黑色

    我正在拍摄快照并创建缩略图 然后共享此图像 但缩略图显示全黑 我使用了以下代码 Bitmap bitmap View v1 v getRootView v1 setDrawingCacheEnabled true bitmap Bitmap
  • BitmapFactory.decodeResource() 忽略 jpg 图像的 inPreferredConfig 选项

    我尝试将jpeg资源图像加载到ARGB 8888格式的位图 BitmapFactory Options opts new BitmapFactory Options opts inPreferredConfig Bitmap Config
  • 从Android客户端登录appengine

    我正在尝试登录应用程序引擎并访问应用程序引擎中的用户服务API 基本上我希望能够看到谁登录了我的 servlet 我正在使用从 android 获取 authtoken 然后从应用程序引擎获取 ASID 或 SACID cookie 的身份
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • 在android中使用BaseActivity的不同活动中的通用标头

    我想编写一次代码并在不同的活动中使用 我创建了一个Base Activity class为了那个原因 此外 不同活动中所有布局的标题都是相同的 我在以下人员的帮助下做到了这一点
  • Android Jasper 报告

    Jasper Reporting 可以集成到 Android 应用程序中吗 我正在尝试从 jrxml 文件生成 PDF CSV 文本和 XLS 报告 但是 我没有看到 Android SDK 支持 net sf jasperreports
  • 查询联系人 - 有时返回空游标

    我正在尝试查询联系人的显示名称 Override public void onActivityResult int requestCode int resultCode Intent data switch requestCode case

随机推荐

  • 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 可以通过声明自定义权限 即使用