android中permission_group与permisson区别、作用

 

阅读Android SDK时可以发现, Android Manifest下有两个内部类, 一个是permission ,还有一个是permission_group。

 

 

这两个内部类是干什么的呢? 有什么区别呢?

 

对于Permission, 可能做过Android开发的人应该都知道, 这就是权限。 在这个类中定义了很多的权限,比如网络访问权限、蓝牙设备访问权限、振动器使用权限等等.. 

 

 

 

一般用法就是在 AndroidManifest.xml 中进行定义, 如下例:

 

 

这里面的就是权限定义。

 

一般我们都是在这边定义好, 不知道能不能动态授权噢.. 下次研究下!

 

那么permission_group是干什么的呢?

 

从SDK中可以看到, 这个类中只有很少的几个常量定义。究竟什么作用?

 

 

 

其实Android在定义 permission 时, 为每个Permission都进行了分组, 每一个Permission都有一个PermissionGroup属性。

 

来看一下Android源码(在frameworks/base/core/res /AndroidManifest.xml):

 

   

 

可以看到,这边先定义了一个PermissionGroup : android.permission-group.COST_MONEY, 然后又定义了两个Permission : 

android.permission.SEND_SMS  和 android.permission.CALL_PHONE , 需要注意的是,这两个权限中都一个android:permissionGroup属性,这个属性就指定了这个权限所属的PermissionGroup。

 

而PermissionGroup在定义时,仅仅制定了label和descrip , 就是说明一下这个权限组的作用,没什么其他用处。

 

 


 

下面总结一下:

 

permissiongroup,就是permission里面的一个tag。


主要作用是用来显示application需要的权限,


比如你使用了权限,
那么在android的setting->applications->manage applications->你的应用程序,显示的是需要“Network communication”权限,这个“Network communication”就是permissionGroup的label。


所以说permissiongroup只是一个逻辑分组,作用也只有显示应用程序权限给用户看的。

 

当然需要额外说明的是, 并不是所有的Permission都有PermissionGroup, 有的可能没有分组。 这些没有分组的Permission也会自己指定label, 以便告知用户这个权限的作用。

 

你可能感兴趣的:(【Android基础】,【Android进阶】)