Android6.0权限管理 没你想的那么难

前言:

Android6.0已经出来蛮久的了,每次面试的时候也会问到关于Android 6.0的新特性,然而我每次就一句话回答(“增加了权限的动态管理”) 看面试官欲言又止的样子... 哎 不说了 如果再说详细点offer说不定就是你的了

介绍:

关于介绍 网上一大片的陈词滥调 重复一遍又一遍这里给出google官网的关于6.0权限变更的介绍 大家自行查看
Android 6.0 变更
重点:

  1. Android 6.0(API 级别 23)将权限分为normal、dangerous、signature和signatureOrSystem四个等级 我们只需要了解前面2种权限:
    正常权限 比如获取网络状态:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

危险权限
通过adb命令可以查看

$ adb shell pm list permissions -d -g
  1. Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的 checkSelfPermission() 方法。要请求权限,请调用新增的 requestPermissions() 方法。即使您的应用并不以 Android 6.0(API 级别 23)为目标平台,您也应该在新权限模式下测试您的应用。
  2. 危险权限的同一组的任何一个权限被授权了,其他权限也自动被授权。例如,一旦WRITE_CONTACTS被授权了,app也有READ_CONTACTS和GET_ACCOUNTS权限了。

API使用

  1. 检查权限是否授权checkSelfPermission()
//返回值为int 如果为0代表已经授权
/**
*activtiy 申请权限的activtiy
*permission 检查的权限
/
int result=PermissionChecker.checkSelfPermission(activtiy,permission)
  1. 申请授权requestPermissions()调用该方法会回调Activtiy的onRequestPermissionsResult()方法 第一次请求授权,系统会默认弹出一个Dialog(不可定制) 拒绝后,再次请求授权,就会出现带“不再询问”选项的Dialog 勾选后 就不在弹出该Dialog。
/**
*this 申请权限的activtiy
*permission 检查的权限
*REQUEST_CODE 请求授权返回标识码
/
private static final int PERMISSION_REQUEST_CODE = 100;
ActivityCompat.requestPermissions(this, permission, PERMISSION_REQUEST_CODE);

3.授权回调onRequestPermissionsResult()通过requestPermissions()会触发该函数的回调

/**
*grantResults 申请权限组的授权返回码
*permissions 检查的权限组
*requestCode 请求授权返回标识码
/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults){
}

建议:

  1. 在做权限动态申请的时候 例如:需要设备相机才能够拍摄照片 可以考虑使用Intent去启动系统的相机应用应用控制相机并拍摄照片 无需去调用摄像头 自己去实现 图像成型逻辑。其他情况 比如拨打电话、访问用户的联系人或要执行其他操作 都可以通过Intent去隐式的启动(缺点:在UI上不能控制)
  2. 在应用启动的时候,可以先请求应用必须的一些权限,对于不是必须的,可以在使用的时候,才请求(如一些附带权限),需要自己整理,管理一下自己应用的权限分类
  3. 自 Android 6.0 起,用户可以打开或关闭任何应用的权限,即使面向 API 级别 22 或更低级别的应用也是如此,再加上国内的厂商的系统定制 所以即使在API 23以下也需要做权限申请授权
  4. requestPermissions()申请授权前向用户解释应用需要相应权限的原因

封装:

如果涉及危险权限的申请地方太多的话 需要做些适当的封装 以便后续开发随时调用

相关Demo

  • 检查是否已经授权
/*
*this 申请授权的Activtiy
*permiss 申请授权权限 可以是多个权限
*/
PermissionsUtil.hasPermission(this, permiss)
  • 申请授权操作
/**
*this 申请授权的Activtiy
*PermissionListener 授权回调接口
*permiss 申请授权权限 可以是多个权限
*true 授权失败是否显示Dialog
*info 显示授权失败Dialog弹窗内容
/
PermissionsUtil.requestPermission(this, new PermissionListener(), permiss, true, info);
  • 监听授权接口
public interface PermissionListener {
   /**
    * 授权成功
    */
   void permissionGranted();
   /**
    * 授权失败
    */
   void permissionDenied(String[] permission);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容