我正在学习 Android 编程,我已经了解了自定义权限的概念。
根据我的理解,这是自定义权限的工作原理:
'Base app'
可以通过声明自定义权限(即使用<permission>
清单文件中的标签)和'client app'
调用受自定义权限保护的活动和服务需要获取必要的权限(即使用<uses-permission>
清单文件中的标签)来调用base app
.
但是,我对自定义权限有以下疑问:
- 如果自定义权限被声明为危险(即,
android:protectionLevel="dangerous"
),是否client app
安装时需要得到用户的批准吗?如果是这样,用户如何知道这些自定义权限,因为不会有任何自定义权限的文档。
- 在安装期间如何
client app
知道base app
是否已经安装在用户的手机中?无论如何,有没有client app
想知道这些信息吗?
- 一旦
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(使用前将#替换为@)