android入门-permission

经常在AndroidManifest.xml中看到<uses-permission></>的标签,用得最多的还是声明使用一些系统权限。

那怎样定义自己的权限呢?

这个问题其实应该换个说法更加明了,我怎样限制其他程序访问我的app中的activity,就如同web项目添加过滤器限制用户直接在地址栏输入地址跳转到相应页面相似。

比如我有appA,其中有A_1_Activity,A_2_Activity,A_3_Activity;

还有appB,其中有B_1_Activity,B_2_Activity。

需求是我要限制appB对我appA中A_2_Activity的访问。

(1)在appA的AndroidManifest.xml中定义一个自定义的权限。

    <permission android:name="com.permission.ALLOW_ACCESS_A_2"
        android:protectionLevel="signature|dangerous|normal|signatureOrSystem"
        android:icon=""
        android:logo=""
        android:permissionGroup=""
        android:label="@string/description"
        android:description="@string/description">
    </permission>


未设置的是可选属性,protectionLevel的设定:

signature:当应用程序所用数字签名与声明此权限的应用数字签名一致时,才能授权;

dangerous:高风险权限,系统可能要求用户输入相关信息才能获得授权

normal:低风险权限,不会对系统、用户或其他应用造成危害;

signatureOrSystem:授权给具有相同数字签名的应用程序或Android包,该级别适用于多供应商需要通过系统映像共享功能时。

 

这还没完事,既然是要为A_2_Activity做限制,必须要有东西证明我限制的就是A_2_Activity而不是A_1_Activity,<activity/>标签中就有android:permission可以限定访问该activity需要的权限,相当于给activity添加了一个过滤器。

<activity
        android:name=".A_2_Activity"
        android:label="@string/app_name"
        android:permission="com.permission.ALLOW_ACCESS_A_2">……</activity>

 

到这对appA的AndroidManifest.xml基本搞定,但一般一个app中相互之间activity保不齐有相互调用的,所以,我们最好在appA的AndroidManifest.xml也添加权限

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

 

(2)如果appB中有activity访问到A_2_Activity,不管是几个访问,只需要添加一句

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

即可完成appB对appA中A_2_Activity的权限设置。

 

如需了解更多,推荐博客:http://blog.csdn.net/liuhe688/article/details/6417983

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值