Android6.0新特性以及权限申请

背景:

Android6.0称为Marshmallow(棉花糖),在2015年5月28日Google的I/O大会上首次露面,十月份正式发布并推送,至今已经一年多的时间了,所占市场份额在4.7%左右,更新了比较多的模块,当然主要是对Android系统进行了优化,对于我们开发者来说主要是应用权限的管理。


数据截止17年2月15日

主要更新内容:

电源管理:

继在5.0中加入了节电模式之后,Google在原有的电源管理的基础上加入了两种新的状态:

  • App Standby-应用待机状态

当系统检测到设备不充电,且用户没有直接或间接启动该应用时,该应用进入应用待机状态,而反之(当应用被激活或者设备在充电时)系统将该应用移出应用待机状态。

App Standby指的是系统会自动停用那些许久不用的应用,从而达到节省电量和减少后台占用的作用。

  • Doze-系统休眠状态

当系统检测到设备不充电,且设备静止灭屏一段时间会进入休眠状态,而如此周期性检测,状态不改变则会进入更长的休眠状态,一直到进入饱和休眠状态。

Doze 的原理是通过对传感器的监控,来判断机器是否处于使用状态。当 Doze 认为机器长时间处于待机状态的时候,它会自动暂停绝大部分后台应用,同时关闭网络连接,仅在需要时偶尔连接,如此来达到在待机时节省电量的效果。


图片引自Android Developer

从这张图我们可以看到,系统进入Doze模式后,系统会隔一段时间处理正在挂起的任务,随着时间推移,后面间隔的时间会越来越长,以此来减少电量消耗。

App Links (App深链接):

谷歌在Android 6.0上新加入App Links,允许开发者将App和Web站点关联。这一举措旨在鼓励应用程序间关联,弱化浏览器的使用。比如说用户点击淘宝某件商品的链接,在用户安装了淘宝APP的情况下优先考虑跳转到淘宝APP。

指纹识别:

在6.0以前的指纹识别是各家手机厂商自己研发,弊端在于加剧了Android系统的碎片化,而且各家厂商的指纹识别也是良莠不齐,6.0以后谷歌为Android提供指纹识别API,厂商只需要提供硬件支持即可。

Android Pay:

新的6.0系统中集成了Android Pay。其特性在于简洁、安全、可选性。Android Pay是一个开放性平台,使用户就可以选择谷歌的服务或者使用银行的APP来使用它,Android Pay向下兼容到Android 4.4,同时支付功能可以使用指纹来进行支付,但事实上各家厂商并不买账。

应用权限管理:

关于应用权限的问题,一直是Android 系统被人所诟病的一点,存在了很大的安全漏洞。一直以来如果 Android 用户不想让某些 App 读取地理信息数据或者访问通讯录,只能靠第三方软件或者第三方 ROM 的内置功能来实现,而且在使用的时候可能需要 Root 权限等,极为麻烦,而谷歌显然是意识到了这点,首先看下Android 系统的权限模型变化:

  • 5.0以前,只需要在Manifest清单文件中注册声明即可永久使用;
  • 5.0以后,用户在安装时可以选择关闭某些权限;
  • 6.0以后,权限类型划分,对于一些危险或隐私权限会让用户选择是否授权;

Android6.0对权限进行了分类,具体可分为:

  • Normal Premission:普通权限
  • Dangerous Permission/Group: 危险权限/组
    普通权限,跟之前一样只需要在AndroidManifest.xml中申请即可,而对于危险权限,则是需要单独跟用户申请的权限(运行时权限)。

以下是普通权限,只需要在AndroidManifest.xml中申请即可:

  android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
  android.permission.ACCESS_NETWORK_STATE
  android.permission.ACCESS_NOTIFICATION_POLICY
  android.permission.ACCESS_WIFI_STATE
  android.permission.ACCESS_WIMAX_STATE
  android.permission.BLUETOOTH
  android.permission.BLUETOOTH_ADMIN
  android.permission.BROADCAST_STICKY
  android.permission.CHANGE_NETWORK_STATE
  android.permission.CHANGE_WIFI_MULTICAST_STATE
  android.permission.CHANGE_WIFI_STATE
  android.permission.CHANGE_WIMAX_STATE
  android.permission.DISABLE_KEYGUARD
  android.permission.EXPAND_STATUS_BAR
  android.permission.FLASHLIGHT
  android.permission.GET_ACCOUNTS
  android.permission.GET_PACKAGE_SIZE
  android.permission.INTERNET
  android.permission.KILL_BACKGROUND_PROCESSES
  android.permission.MODIFY_AUDIO_SETTINGS
  android.permission.NFC
  android.permission.READ_SYNC_SETTINGS
  android.permission.READ_SYNC_STATS
  android.permission.RECEIVE_BOOT_COMPLETED
  android.permission.REORDER_TASKS
  android.permission.REQUEST_INSTALL_PACKAGES
  android.permission.SET_TIME_ZONE
  android.permission.SET_WALLPAPER
  android.permission.SET_WALLPAPER_HINTS
  android.permission.SUBSCRIBED_FEEDS_READ
  android.permission.TRANSMIT_IR
  android.permission.USE_FINGERPRINT
  android.permission.VIBRATE
  android.permission.WAKE_LOCK
  android.permission.WRITE_SYNC_SETTINGS
  com.android.alarm.permission.SET_ALARM
  com.android.launcher.permission.INSTALL_SHORTCUT
  com.android.launcher.permission.UNINSTALL_SHORTCUT

以下是危险权限,需单独申请,共分为9组(危险权限组),每组只要有一个权限申请成功了,就默认整组权限都可以使用了。

    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
申请步骤:
  • 将targetSdkVersion设置为23,注意,如果你将targetSdkVersion设置为>=23,则必须按照Android谷歌的要求,动态的申请权限,如果你暂时不打算支持动态权限申请,则targetSdkVersion最大只能设置为22。
  • 在AndroidManifest.xml中申请你需要的权限,包括普通权限和需要申请的特殊权限,这样做是为了兼容6.0以下的版本
  • 申请权限,此处分为3步:
  1. 检查是否由此权限checkSelfPermission(),如果已经开启,则不需要再申请。
  2. 如果未开启,则判断是否需要向用户解释为何申请权限shouldShowRequestPermissionRationale。
  3. 如果需要(即返回true),则可以弹出对话框提示用户申请权限原因,用户确认后申请权限requestPermissions(),如果不需要(即返回false),则直接申请权限requestPermissions()。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,856评论 25 707
  • 一 运行时权限 Android6.0 引入了一个新的应用权限模型,期望对用户更容易理解,更易用和更安全。该模型将标...
    奥利奥龙卷风阅读 501评论 1 1
  • 1、学生选课-判断List中课程是否存在 思考:1、在课程序列中,如何判断是否包含某门课或者某几门课程?2、如果课...
    夏沫xx阅读 432评论 0 2
  • 今天是11月5号 星期天,晴。 早晨,我和雅琳早早起床了,安排好她和姐姐一起去舞蹈班,我就回娘家了,昨晚听父亲说,...
    雅琳妈妈阅读 213评论 0 2
  • 我爸在的时候,每逢过年过节,会拿着他那插着3g卡的ipad(他自己称之为小本),在奶奶家跟我来个简短的视频。因为心...
    海咸河淡阅读 304评论 3 1