打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在Android应用中动态检查权限

在我之前的question关于运行时android权限实施的后续研究中,我发现android中有很多方法可以使应用程序验证调用方(客户端)应用程序所拥有的权限.这包括诸如checkCallingPermission,checkCallingOrSelfPermission,checkCallingUriPermission,checkCallingOrSelfUriPermission,checkPermission,checkUriPermission之类的调用.就我经历的android documentation而言,我只能在运行时找到与权限检查有关的这些调用.我的问题:

>还有其他方法(而不是使用上述调用)
动态检查呼叫者的权限?如果有的话
此类电话,请提供信息/链接或将其列出.
> checkCallingOrSelfPermission的描述说

it grants your own permissions if you are not currently processing an
IPC. Use with care!

这似乎很冒险,因为它可能有助于将(危险的)权限委派给调用过程,这可能会导致特权提升(如果使用不当的话).请让我知道我是否正确,这可能会导致特权升级攻击.

>我不明白为什么一个进程(正在运行的应用程序)将检查它是否具有一定的权限(它很想知道它有权做什么?).请让我知道
这种特定方法的设计背后的直觉是:
checkCallingOrSelfPermission. (简单地说,为什么/何时需要
checkCallingOrSelfPermission?)

解决方法:

Android中有两种类型的权限检查机制.

一个是每个进程的运行时动态检查,另一个是每个程序包的静态检查.您提到的所有关于运行时动态的东西都是在Context中实现的,另一个版本是在PackageManager中. –checkPermission

您要检查的是特定程序包是否具有特定权限,答案是checkPermission.有关更详细的描述,Android Developer Site中有一篇有关该主题的文章.
http://developer.android.com/guide/topics/security/permissions.html#declaring

在许多情况下,您不需要使用动态权限检查方法,仅当您正在与一个提供程序共享某些私有文件到特定客户端,远程服务或某些小部件时,才需要使用此方法-通过Intent或IPC进行临时权限授予的系统.

而且,您可以针对前面的有关multiple permissions in android:permisson的问题进行细化.有一种方法可以让应用在Manifest中定义所需权限列表.

校验-
http://developer.android.com/guide/topics/manifest/uses-permission-element.html

来源:https://www.icode9.com/content-4-575251.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android教程16 拨打电话 动态权限申请
教大家一个方法,快速设置微信动态权限,很方便的操作
Android检测是否安装某应用方法
安卓2.3 root权限一键获取方法
qq动态怎么取消仅自己可见
安卓手机恶意软件卸载教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服