Android 6.0的变化之权限管理

转载 2016年05月30日 10:54:27

Runtime Permissions

Android 6.0 增加了权限管理,用户可以直接管理应用的权限。但对于Android开发人员,这可能不是一个很好的消息。下面我们来说道说道,我们可能会遇到的坑以及需要注意得问题。

1、权限询问对话框不会自己弹出来。开发者不得不自己调用。如果开发者要调用的一些函数需要某权限而用户又拒绝授权的话,函数将抛出异常直接导致程序崩溃。用户也可以随时在设置里取消已经授权的权限。

2、这个新的运行时权限仅当我们设置targetSdkVersion to 23。app在6.0之前的设备依然使用旧的权限系统。如果app的targetSdkVersion 低于 23,那将被认为app没有用23新权限测试过,那将被继续使用旧有规则:用户在安装的时候不得不接受所有权限,安装后app就有了那些权限咯!

3、注意,此时用户依然可以取消已经同意的授权!用户取消授权时,android 6.0系统会警告,但这不妨碍用户取消授权。

4、当我们在targetSdkVersion 低于23的app调用一个需要权限的函数时,这个权限如果被用户取消授权了的话,不抛出异常。但是他将啥都不干,结果导致函数返回值是null或者0.而返回的结果也有可能会导致应用奔溃。

5、当用户安装或更新应用时,系统将授予应用所请求的属于 PROTECTION_NORMAL 的所有权限(安装时授权的一类基本权限)。 
例如: 
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

6、源码中被用来检查和请求权限的方法分别是Activity的checkSelfPermission和requestPermissions。

7、为了兼容,google也给我们提供了v4兼容库。当然 现在网上也能搜到一些开源库:PermissionsDispatcher

8、当app开着的时候被撤消了,这时app会突然终止 terminated。

相关文章推荐

Android 6.0的变化之权限管理

Runtime PermissionsAndroid 6.0 增加了权限管理,用户可以直接管理应用的权限。但对于Android开发人员,这可能不是一个很好的消息。下面我们来说道说道,我们可能会遇到的坑...

android6.0权限管理demo

  • 2016年10月10日 12:02
  • 2.99MB
  • 下载

Android权限管理原理(含6.0-4.3)

Android系统在6.0之前都没有统一的权限管理,时机4.3开始,google就已经打算对android的权限进行统一管理了,但是由于不成熟,一直到6.0才推出了runtime-permission...

android6.0以上权限管理工具类

  • 2017年05月02日 10:05
  • 4KB
  • 下载

Android 6.0 运行时权限管理

  • 2016年07月06日 14:22
  • 7.19MB
  • 下载

android 6.0 权限管理的学习资料和使用例子

别人翻译的资料(很详细的) http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0830/3387.html 一个开源的权限管...

Android6.0后的权限管理库

  • 2016年12月15日 14:23
  • 161KB
  • 下载

android6.0动态权限管理,小米bug适配

在Android6.0以后开始,对于部分敏感的“危险”权限,需要在应用运行时向用户申请,只有用户允许的情况下这个权限才会被授予给应用。这对于用户来说,无疑是一个提升安全性的做法。那么对于开发者,应该怎...

Android6.0运行时权限管理

Android6.0 全称:Marshmallow 主要更新:电源管理(应用待机)、App link(应用之间交互)、指纹识别、应用程序权限管理等等 Android6.0权限主要分为两类Norm...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 6.0的变化之权限管理
举报原因:
原因补充:

(最多只允许输入30个字)