Android 6.0 新特性

6.0系统全称为Marshmallow,Google 2015年I/O大会上正式发布,目前市场份额也在持续上涨,它有着众多模块的更新。

主要更新模块

  • 电源管理(Android6.0 引入了下列特性来延长电池使用时间)
  • App Standby(应用待机)
    • 检测:当设备部充电,且在这时间内用户没有直接或间接的启动该应用。
    • 退出:当应用被激活时,或者设备充电时,系统将应用移除此状态。
  • Doze(瞌睡)
    • 检测:当设备不充电,且当设备静止且灭屏一段时间。
    • 周期:平台尝试让系统处于休眠状态,周期性地进入在一个维持窗口恢复正常操作,然后进入更长的休眠状态。
  • Exemptions(豁免)
    预装在设备上的系统应用和云消息服务,默认通常被豁免。应用开发者可以要求其应用使用这种设定。用户也可以在设置中来豁免某些应用。
  • App Link
    • 全称为应用程序链接。
    • 技术点:就是我们的隐式启动Intent。
    • Android更加鼓励应用程序间的关联而不再是单一的应用同浏览器的交互。
  • 指纹识别
    • 6.0 以前一直由各个手机制造厂商去研发。导致指纹识别不同的手机差异巨大。
    • 6.0 以后由Android系统提供API,硬件厂商只需提供相应的硬件支持即可。
  • 应用权限管理
    • 5.0 以前,只需要在manifest.xml中注册声明即可。
    • 5.0 以后,用户可以在安装的时候关闭某些权限。
    • 6.0 及以后,对于一些用户隐私权限总是会在第一次提示用户是否授予权限。

权限机制详解

  • 优势
    • 新的权限机制更好的保护了用户的隐私。
    • 给了程序向用户说明权限的作用。
    • 可以防止一些恶意程序盗取用户或者手机信息,增强了Android系统的安全性。
  • 分类
    • Normal Premission
    • Dangerous Permission & Dangerous Premission Group
  • 概念
    如果你申请某个危险的权限,假设你的app早已被用户授权了同一组的某个危险权限,那么系统会立即授权,而不需要用户去点击授权。
  • 新增API
    • ContextCompact.checkSelfPermission( 检查当前APP是否具有某个权限)
    • ActivityCompact.requestPermissions()(如果没有某个权限,就使用此方法申请权限,由于ActivityCompact是继承自ContextCompact,所以也可以用ActivityCompact)
    • onRequestPermissionsResult()(申请权限是异步的,这是个回调来处理用户选择的结果,如果用户同意给权限,紧接着做授权成功的处理,若用户不同意授权,做授权失败的处理)
    • ActivityCompact.shouldShowRequestPermissionRationale(给用户解释此权限的用途,在用户拒绝授权才会出现)
  • 使用流程
    • 在AndroidManifest中添加需要的权限(不可省,还要适配6.0以下的系统)
    • 检查权限(检测危险权限)
    • 申请授权
    • 处理权限申请回调
  • Dangerous Permissions (危险权限都是一组一组的,如果申请某个危险的权限,假设app早已被用户授权了同一组的某个危险权限,那么系统会立即授权,而不需要用户去点击授权,注意,不要对权限组过多的依赖,尽可能对每个危险权限都进行正常流程的申请,因为谁知道后期的版本中这个权限组会不会发生点变化呢)
    • group:android.permission-group.CONTACTS
      • permission:android.permission.WRITE_CONTACTS
      • permission:android.permission.GET_ACCOUNTS
      • permission:android.permission.READ_CONTACTS
  • group:android.permission-group.PHONE
    • permission:android.permission.READ_CALL_LOG
    • permission:android.permission.READ_PHONE_STATE
    • permission:android.permission.CALL_PHONE
    • permission:android.permission.WRITE_CALL_LOG
    • permission:android.permission.USE_SIP
    • permission:android.permission.PROCESS_OUTGOING_CALLS
    • permission:com.android.voicemail.permission.ADD_VOICEMAIL
  • group:android.permission-group.CALENDAR
    • permission:android.permission.READ_CALENDAR
    • permission:android.permission.WRITE_CALENDAR
  • group:android.permission-group.CAMERA
    • permission:android.permission.CAMERA
  • group:android.permission-group.SENSORS
    • permission:android.permission.BODY_SENSORS
  • group:android.permission-group.LOCATION
    • permission:android.permission.ACCESS_FINE_LOCATION
    • permission:android.permission.ACCESS_COARSE_LOCATION
  • group:android.permission-group.STORAGE
    • permission:android.permission.READ_EXTERNAL_STORAGE
    • permission:android.permission.WRITE_EXTERNAL_STORAGE
  • group:android.permission-group.MICROPHONE
    • permission:android.permission.RECORD_AUDIO
  • group:android.permission-group.SMS
    • permission:android.permission.READ_SMS
    • permission:android.permission.RECEIVE_WAP_PUSH
    • permission:android.permission.RECEIVE_MMS
    • permission:android.permission.RECEIVE_SMS
    • permission:android.permission.SEND_SMS
    • permission:android.permission.READ_CELL_BROADCASTS
  • 代码实践
Demo核心代码

只要按照使用流程去在代码中请求权限,就能解决6.0手机权限问题,只是在真正项目中每个危险权限一个个去请求,代码重复性就比较高,于是就需要对此进行一次封装,Github上面有不少封装好的权限请求,使用方法就到每个链接去看吧,很简单的,当然也可以自己在自己项目中封装啦。

  1. MPermissions a easy API to use runtime permission for Android M
  2. PermissionGen Android API easy to use permission for Android M
  3. RxPermissions Android runtime permissions powered by RxJava

还有一篇写的很好的博客介绍运行权限的 Android 6.0运行时权限详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容