应用程序权限

1、一个Android应用可能需要权限才能调用android系统的功能

2、一个android应用也可能被其它应用调用,因此也需要声明调用自身所需要的权限


声明运行该运用所需要的权限

通过为<manifest.../>元素添加<uses-permission.../>子元素即可为程序本身声明权限

<!----声明该应用本身需要打电话的权限>

<uses-permission  android:name = "android.permission.CALL_PHONE"/>


声明调用该应用所需的权限

通过为应用的各组件元素,如<activity.../>元素添加<uses-permission.../>子元素即可声明调用该程序所需的权限

<!-----uses-permission  android:name="android.permission.SEND_SMS"/>


Android提供了大量的权限,都位于Manifest.permission类中


Android接口调用控制,首先是root用户和system用户拥有所有的接口调用权限,然后对于其它用户使用Context以下这几个函数来实现  

Context.checkCallingOrSelfPermission(String); 
Context.checkCallingOrSelfUriPermission(Uri,int); 
Context.checkCallingPermission(Permission); 
Context.checkCallingUriPermission(Uri,int); 
Context.checkPermission(String,int,int); 
Context.checkUriPermission(Uri,int,int,int); 
Context.checkUriPermission(Uri,String,String,int,int,int); 

Context.enforceCallingOrSelfPermission(String,String); 
Context.enforceCallingOrSelfUriPermission(Uri,int,String); 
Context.enforceCallingPermission(String,String); 
Context.enforceCallingUriPermission(String,String); 
Context.enforcePermission(String,int,int,String); 
Context.enforceUriPermission(Uri,int,int,int,String); 
Context.enforceUriPermission(Uri,String,String,int,int,int,String);

    其中check开头的,只做检查。enforce开头的,不单检查,没有权限的还会抛出异常。

    这几个函数最后会调用到PKMS的checkUidPermission,该函数通过对比应用权限信息来判断该应用是否获得权限。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值