android 动态检测权限,在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

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

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

https://www.icode9.com/content-4-575251.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值