官方推荐的android 6.0 权限获取方式(实例demo:easypermissions)
2016-11-24 00:32
645 查看
这里推荐逻辑是,android6.0权限获取,单个获取,多个获取,拒绝后再次获取,记住拒绝后引导用户转到权限设置界面手动获取权限,是的,就是要这样获取权限。比如一个扫码功能,用户不小心拒绝了你就不能这样放弃权限不再获取了吗?
首先献上一个sample的例子,知道大家都喜欢看demo,扫码下载demo体验
介绍:
Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测,以下权限都需要在运行时判断:
解决方案
使用goole官方提供的库(混淆时不需要额外keep):
这个库就几个类,不想引用库也可以直接把类复制到自己工程里,看图:
实现接口
实现方法
获取权限
获取结果
运行结果
1、第一次点击按钮打开相机,获取禁止
2、再次点击按钮打开相机
3、第二次获取禁止不再询问
4、再次点击按钮打开相机
5、引导进入权限手动设置
最后奉上demo源码
http://download.csdn.net/detail/u013100574/9691735
注:参考github googlesample
https://github.com/googlesamples/easypermissions
首先献上一个sample的例子,知道大家都喜欢看demo,扫码下载demo体验
介绍:
Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测,以下权限都需要在运行时判断:
身体传感器 日历 摄像头 通讯录 地理位置 麦克风 电话 短信 存储空间
解决方案
使用goole官方提供的库(混淆时不需要额外keep):
compile 'pub.devrel:easypermissions:0.2.1'
这个库就几个类,不想引用库也可以直接把类复制到自己工程里,看图:
实现接口
implements EasyPermissions.PermissionCallbacks
实现方法
@Override public void onPermissionsGranted(int requestCode, List<String> perms) { } @Override public void onPermissionsDenied(int requestCode, List<String> perms) { }
获取权限
@AfterPermissionGranted(RC_CAMERA_PERM) public void cameraTask() { if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA)) { // Have permission, do the thing! Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show(); } else { // Ask for one permission EasyPermissions.requestPermissions(this, getString(R.string.rationale_camera), RC_CAMERA_PERM, Manifest.permission.CAMERA); } }
获取结果
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // EasyPermissions handles the request result. EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); }
运行结果
1、第一次点击按钮打开相机,获取禁止
2、再次点击按钮打开相机
3、第二次获取禁止不再询问
4、再次点击按钮打开相机
5、引导进入权限手动设置
最后奉上demo源码
http://download.csdn.net/detail/u013100574/9691735
注:参考github googlesample
https://github.com/googlesamples/easypermissions
相关文章推荐
- Android处理6.0获取权限问题的第三方框架------开源项目-Easypermissions
- android:targetSdkVersion的不同影响6.0系统下权限的获取方式
- Android 6.0动态获取权限,根据官方总结的最简单有效解决方法
- Android 6.0 中动态获取权限
- Android获取设备隐私 忽略6.0权限管理
- 在android 6.0以上无法获取READ_PHONE_STATE权限的SecurityException的问题
- Android开发必知:6.0权限,官方分析
- 对android 6.0 动态获取权限框架 PermissionDispatcher 的使用
- Android_在Android 6.0设备上动态获取权限
- Android 6.0 最简单的权限获取方法 RxPermition EasyPermition
- Android 6.0在运行时申请权限解释与实例
- android 6.0 系统获取权限
- <Android>--6.0版本获取运行时的权限方法
- android 6.0 开发中 遇到权限授予方式变更的问题
- Android 6.0 权限管理 实例
- Android获取屏幕分辨率官方推荐的新方法
- Android_设备隐私获取,忽略6.0权限管理
- 【Android开发】BitMap优化最佳实践及官方Demo“图片墙”实例详解
- Android官方API Demo学习之联系人获取
- Android 6.0动态权限的获取