Android中permission与uses-permission

转自http://bigcat.easymorse.com/?p=1563&cpage=1#comment-20280


Android中安全与权限中讲了Android的权限和安全实现机制与原理,这里讲一下AndroidManifest.xml文件中的

<uses-permission>与<permission>之间的区别与用法。
 
<uses-permission>用法:
 
<uses-permission android:name="string" />
为了保证application的正常运行,需要系统授予app的权限声明。这个权限是在用户安装应用的时候授予的。
android:name的值可以是其他app通过<permission>声明的,也可以是系统的权限名称,例如
android.permission.CAMERA或android.permission.READ_CONTACTS等等。
注:uses-permission的权限要求说明,可能会引起app在Android Market中的过滤。
 

<permission>用法:

 

<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"] />
 
permission就是自定义权限的声明,可以用来限制app中特殊组件,特性与app内部或者和其他app之间访问。
写了一个引用自定义权限的例子,在安装app的时候,提示权限:
image

自定义权限如下:

<permission android:label=”自定义权限”
    android:description=”@string/hello”
    android:name=”com.example.project.PERMITTED_ACTION”
    android:protectionLevel=”normal”
    android:icon=”@drawable/ic_launcher”>
</permission>

android:label:权限名字,显示给用户的,值可是一个string数据,例如这里的“自定义权限”。

android:description:比label更长的对权限的描述。值是通过resource文件中获取的,不能直接写string值,例如这里的”@string/hello”。

android:name:权限名字,如果其他app引用该权限需要填写这个名字。

android:protectionLevel:权限级别,分为4个级别:

normal:低风险权限,在安装的时候,系统会自动授予权限给application。

dangerous:高风险权限,系统不会自动授予权限给app,在用到的时候,会给用户提示。

signature:签名权限,在其他app引用声明的权限的时候,需要保证两个app的签名一致。这样系统就会自动授予权限给第三方app,而不提示给用户。

signatureOrSystem:这个权限是引用该权限的app需要有和系统同样的签名才能授予的权限,一般不推荐使用。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值