Android 6.0的变化之权限管理
2015-10-21 19:54
441 查看
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静态代码检查-Lint
- [Android Pro] CPU占用计算方法
- Android SDK Android NDK Android Studio 官方下载地址
- android studio StackView控件的源码解释和简单示例
- android知乎小圆圈刷新效果
- Android 解决bug:异常提示"ListView cannot be cast to android.widget.BaseAdapter "
- 从源码中浅析Android中如何利用attrs和styles定义控件
- android.support.design.widget.TabLayout 用法解析
- Android 内存优化 (转载)
- Android 内存管理 &Memory Leak & OOM 分析
- Android ,TextView 设置onClick 没反应
- Anko for Android
- Android自定义控件之美观的实用型统计表的制作
- Android Studio中如何打JAR包
- 【转】Android截屏
- 【转】Android 音量键+电源键 截屏代码小结
- 【转】ANDROID LOLLIPOP SCREEN CAPTURE AND SHARING
- android之位置坐标
- [分享]4412开发板Android教程——Android开发环境搭建
- Android如何给无法更改继承关系的Activity更换ActionBar(setContentView方法实战)