PermissionsDispatcher的使用
来源:互联网 发布:网络综艺的优势有哪些 编辑:程序博客网 时间:2024/04/30 19:52
PermissionsDispatcher的使用
Android6.0以上的权限问题,通过简单的注释就能获取权限,非常方便快捷。
PermissionsDispatcher库的GitHub地址 https://github.com/hotchemi/PermissionsDispatcher
1. 添加库
compile('com.github.hotchemi:permissionsdispatcher:2.4.0') { // if you don't use android.app.Fragment you can exclude support for them exclude module: "support-v13"}annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:2.4.0"
2. @RuntimePermissions 注释在需要权限的Activity或Fragment 开头
@RuntimePermissionspublic class MainActivity extends AppCompatActivity{}
3. @NeedsPermission 注释在需要权限的方法上后面,需要传入所需的权限,多个权限用逗号隔开
@NeedsPermission({Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE})public void saveBitmap() { final Bitmap bitmap = Bitmap.createBitmap(currentImageView.getDrawingCache()); if (bitmap == null) { return; }}
4. @OnShowRationale 注释在向用户解释为什么需要这个权限的方法上。会弹出权限对话框
/** * @OnShowRationale 注释在向用户解释为什么需要这个权限的方法上。 * @param request 调用系统的权限管理AlertDialog * request.proceed(); 调出系统申请权限的弹窗会执行@NeedsPermission对应的方法 request.cancel(); 会执行@OnPermissionDenied对应的方法 */@OnShowRationale({Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE})void showRationaleForRecord(final PermissionRequest request){ new AlertDialog.Builder(this) .setPositiveButton("好的", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { request.proceed(); .setNegativeButton("不给", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { request.cancel(); } }) .setCancelable(false) .setMessage("保存文件需读取本地存取权限") .show();}
5. @OnPermissionDenied 被拒绝后调用的方法
@OnPermissionDenied({Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE})void showRecordDenied(){ Toast.makeText(this,"拒绝读写本地存取权限将无法保存",Toast.LENGTH_SHORT).show();}
6. @OnNeverAskAgain 勾选了不再提示禁止后调用的方法
@OnNeverAskAgain({Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE})void onSaveBitmapAskAgain() { Toast.makeText(this,"您已经禁止了读写本地SD权限,是否现在去开启",Toast.LENGTH_SHORT).show();}
7. Build -MakeProject 会生成 ImageSelectActivityPermissionsDispatcher 的一个类。
当需要权限的时候,调用 xxWithCheck(this);
case R.id.tv_click_01://保存ImageSelectActivityPermissionsDispatcher.saveBitmapWithCheck(this);
8. 最后还要复写下onRequestPermissionsResult这个方法,里面写上生成类的onRequestPermissionsResult,如:
@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); ImageSelectActivityPermissionsDispatcher.onRequestPermissionsResult(this,requestCode,grantResults);}
by: 爱自由
阅读全文
0 0
- PermissionsDispatcher的使用
- PermissionsDispatcher的使用
- 初次使用PermissionsDispatcher碰到的问题
- PermissionsDispatcher使用详解
- PermissionsDispatcher使用详解
- GitHub上的PermissionsDispatcher的使用(笔记)
- Android6.0权限申请框架的permissionsdispatcher的基本使用
- android开发 权限适配6.0 permissionsdispatcher的安装使用
- PermissionsDispatcher的使用方法
- PermissionsDispatcher
- PermissionsDispatcher库的使用(简单处理Android 6.0系统中的运行时权限的开源库)
- 6.0以上手机运行时权限第三方PermissionsDispatcher的使用
- 6.0以上手机运行时权限第三方PermissionsDispatcher的使用
- 使用PermissionsDispatcher轻松解决Android权限问题
- PermissionsDispatcher动态权限管理使用详解
- 目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的使用和对比
- 目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的使用和对比
- PermissionsDispatcher 使用说明
- Hibernate入门学习之配置文件的理解
- 备注
- 电子通讯录(文件保存版)
- 牛客网三道编程题(三 之华为机试在线训练(二)字符串反转、统计不同字符个数、删除字符串中出现最少的字符
- JAVA多线程和并发基础面试问答
- PermissionsDispatcher的使用
- 读书笔记《Inside the C++ Object Model》:Copy Constructor的构造操作
- Axure RP 8基础教程-制作下拉菜单
- WebSocket
- 生成模型与判别模型优缺点
- 史上最简单的 MySQL 教程(二十九)「外键(下)」
- B. Counting Rectangles is Fun----dp
- Matlab---绘制图像
- 基于redis的延迟消息队列设计