Android6.0权限快速申请(基于RxJava2更优雅)
来源:互联网 发布:煽扇除霾 知乎 编辑:程序博客网 时间:2024/06/03 23:40
一、前言
前言?哪来那么多废话,直接进入正题!
二、需要申请的权限
咳咳咳,进入正题前,我们还是先了解一下哪些权限是Android6.0后需要手动申请的吧,对症下药,才是王道嘛!
group:android.permission-group.CONTACTS (手机联系人相关的权限)
permission:android.permission.WRITE_CONTACTS
permission:android.permission.GET_ACCOUNTS
permission:android.permission.READ_CONTACTSgroup: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_VOICEMAILgroup:android.permission-group.CALENDAR (手机时间相关的权限)
permission:android.permission.READ_CALENDAR
permission:android.permission.WRITE_CALENDARgroup:android.permission-group.CAMERA (相机相关的权限)
permission:android.permission.CAMERAgroup:android.permission-group.SENSORS (传感器相关的权限)
permission:android.permission.BODY_SENSORSgroup:android.permission-group.LOCATION (获取地理位置相关的权限)
permission:android.permission.ACCESS_FINE_LOCATION
permission:android.permission.ACCESS_COARSE_LOCATIONgroup:android.permission-group.STORAGE (数据读写的权限)
permission:android.permission.READ_EXTERNAL_STORAGE
permission:android.permission.WRITE_EXTERNAL_STORAGEgroup:android.permission-group.MICROPHONE (麦克风的权限)
permission:android.permission.RECORD_AUDIOgroup: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
是不是感受到无比的贴心,专门去翻译成了中文,我们可以看到,需要申请的权限都是按组(group)来划分,同组下的权限,只要申请其中一个,那么其他权限就不需要再手动申请了。还是举个栗子吧,例如“数据读写的权限”,我们手动申请了WRITE_EXTERNAL_STORAGE
,那么我们就不用再手动申请READ_EXTERNAL_STORAGE
,好了,开始接下来的表演。
三、添加依赖
在build.gradle中添加如下代码:
dependencies { ··· compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar' compile "io.reactivex.rxjava2:rxjava:2.1.0"}
四、使用
在需要申请权限的Activity中调用如下代码初始化:
RxPermissions rxPermissions = new RxPermissions(this);
申请你需要获取的权限,老规矩,举个栗子:
rxPermissions //request中添加你要获取的权限名称,这里已读写权限为例 .request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { //根据Boolean来判断申请成功后和申请失败后的逻辑判断 if (aBoolean) { Toast.makeText(MainActivity.this, "申请成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "取消申请", Toast.LENGTH_SHORT).show(); } } });
这样就完成了权限申请。当然,如果你要同时申请多个权限,只需要在request中继续添加权限即可:
rxPermissions //request中申请多个权限 .request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.CAMERA) .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { //根据Boolean来判断申请成功后和申请失败后的逻辑判断 if (aBoolean) { Toast.makeText(MainActivity.this, "申请成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "取消申请", Toast.LENGTH_SHORT).show(); } } });
Android6.0权限申请就被我们如此简单的完成啦,是不是炒鸡方便!好了,教程就此结束,喜欢的朋友支持一下,谢谢啦~
- Android6.0权限快速申请(基于RxJava2更优雅)
- Android6.0动态权限获取框架:RxPermission(基于RxJava2)
- 快速申请Android6.0权限教程!
- Android6.0 申请权限比较优雅的处理方法
- Android6.0权限申请
- Android6.0权限申请
- android6.0权限申请
- Android6.0权限申请
- Android6.0权限申请
- Android6.0权限申请
- Android6.0权限申请
- Android6.0+权限申请
- Android6.0权限申请模型
- Android6.0 权限申请封装
- android6.0 动态申请权限
- Android6.0重要权限申请
- Android6.0以上权限申请
- Android6.0权限申请解决方案
- I/O流中字节流与字节缓冲流
- Remove Duplicates from Sorted Array
- Support Webpage For Meiyan Chen's Apps
- github小项目
- 数据库连接池
- Android6.0权限快速申请(基于RxJava2更优雅)
- Android 源码编译
- 虚拟机VMware tools的安装
- 使用RandomAccessFile实现多线程下载
- pacemaker + corosync 搭建高可用集群
- Android Market排名算法及规则
- Impala中的invalidate metadata和refresh
- 集合之List、Map、Set的区别
- JNDI