android中permission_group与permisson区别、作用

【Android基础】 同时被 2 个专栏收录
85 篇文章 0 订阅
34 篇文章 0 订阅

 

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

 

 

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

 

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

 

 

 

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

 

 

这里面的<uses-permission android:name="android.permission.xxx" />就是权限定义。

 

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

 

那么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需要的权限,


比如你使用了<uses-permission android:name="android.permission.INTERNET" />权限,
那么在android的setting->applications->manage applications->你的应用程序,显示的是需要“Network communication”权限,这个“Network communication”就是permissionGroup的label。


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

 

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

 

  • 1
    点赞
  • 5
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值