android permission

来源:互联网 发布:nginx 锁定域名 编辑:程序博客网 时间:2024/05/17 22:13

在我之前的安全与权限系列文章中对此已经有所描述,但是具体到标签的使用没有一个系统的比较。于是乎偶就想写篇文章总结下。本文只是浅析在Manifest文件中各个标签的用法,算是抛砖引玉。(终于拽了个成语 ,虽然到目前为止,偶连块砖头都没有收到过,但是本着予人玫瑰,手有余香的助人为乐精神,偶还是撰写了这篇文章。好,打住,开始正文。)

在Android的manifest文件中有四个标签与permission有关,它们分别是 <permission>   <permission-group>  <permission-tree> 和  <uses-permission>。其中最常用当然是  <uses-permission>,当我们需要获取某个权限的时候就必须在我们的manifest文件中声明<uses-permission>。而其它三个是不常用的(这句是废话)。通常情况下我们不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用<permission> 这个标签。很显然这个标签可以让我们声明自己的权限。比如偶可以声明

 

1 <permission android:name="com.notfatboy.project.VIEW_MYDATA" . . . />

当偶声明了这个<permission>之后,偶就可以在偶的程序中使用这个permission了,比如在偶的某个activity中用这个权限保护,如下:

 

1<application . . .>
2 <activity android:name="com.notfatboy.project.FileManageActivity" . . . >
3 android:permission="com.notfatboy.project.VIEW_MYDATA"
4 . . . >
5 . . .
6 </activity>
7 </application>

 

当然你千万不要以为你自己声明的permission你就可以随意使用,你还是需要使用<uses-permission>来声明你需要该权限,这时你的应用才能正常工作。

<permission-group>   <permission-tree>这两个标签就更少见了,简单说<permission-group> 就是声明一个标签,该标签代表了一组permissions,而<permission-tree>是为一组permissions声明了一个namespace。这两个标签可以看之前的系列文章。