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

我正在学习Android编程,我有点理解自定义权限的概念。

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

'Base app'可以通过声明自定义权限(即使用清单文件中的标记)和调用受自定义权限保护的活动和服务的'client app' 'Base app'来保护其某些组件(例如,活动和服务)需要获取必要的权限(即,使用清单文件中的标签)来调用base app中的这些组件。

但是,我有关于自定义权限的这些问题:

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

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

谢谢。

Solutions Collecting From Web of "关于Android中自定义权限的几个问题"

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

是的,如果你宣布

 android:protectionLevel="dangerous" 

然后系统可能不会自动将其授予请求的应用程序。应用程序请求的任何危险权限可能会显示给用户并需要在继续之前进行确认。

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

 android:description="string resource" 

这是一个示例权限定义。 希望它是自我解释的。

  

2.据我所知,客户端应用程序无法在安装时看到基本应用程序的存在。 但是,当客户端应用程序启动时,它是可能的。 无论如何,Android系统根据您的android.xml文件授予权限。 因此,客户端应用程序在安装时不必担心基本应用程序。

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