ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

android动态权限适配:基于RxJava2后的RxPermissions的快速使用

2021-12-22 13:03:00  阅读:200  来源: 互联网

标签:Toast Manifest permission 适配 show RxJava2 LENGTH RxPermissions 权限


rxPermissions.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)

.subscribe(new Consumer() {

@Override

public void accept(Boolean aBoolean) throws Exception {

if (aBoolean) {

//表示用户同意权限

Toast.makeText(SingeActivity.this,

“用户同意使用权限”, Toast.LENGTH_SHORT).show();

} else {

//表示用户不同意权限

Toast.makeText(SingeActivity.this,

“用户拒绝使用权限”, Toast.LENGTH_SHORT).show();

}

}

});

}

  • 同时请求多个权限

private void requestRxPermissions() {

rxPermissions = new RxPermissions(this);

rxPermissions.request(Manifest.permission.ACCESS_FINE_LOCATION,

Manifest.permission.READ_PHONE_STATE,

Manifest.permission.READ_CALL_LOG)

.subscribe(new Consumer() {

@Override

public void accept(Boolean aBoolean) throws Exception {

if (aBoolean) {

//当所有权限都允许,才会到这里

Toast.makeText(SomeActivity.this,

“用户同意所有权限”, Toast.LENGTH_SHORT).show();

} else {

// //只要有一个权限没同意,就到这里

//下一次申请只申请没同意的权限

Toast.makeText(SomeActivity.this,

“用户拒绝了部分权限”, Toast.LENGTH_SHORT).show();

}

}

});

}

  • 分别申请多个权限

private void requestRxPermissions() {

rxPermissions = new RxPermissions(this);

rxPermissions.requestEach(Manifest.permission.RECORD_AUDIO,

Manifest.permission.CAMERA,

Manifest.permission.GET_ACCOUNTS,

Manifest.permission.READ_CONTACTS,

Manifest.permission.READ_CALENDAR,

Manifest.permission.SEND_SMS,

Manifest.permission.READ_SMS,

Manifest.permissio

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

n.CALL_PHONE)

.subscribe(new Consumer() {

@Override

public void accept(Permission permission) throws Exception {

if (permission.name.equals(Manifest.permission.CAMERA)) {

//使用permission.name可以获得指定权限获得后的操作

Toast.makeText(OneByOneActivity.this,

“照相机权限授权了”, Toast.LENGTH_SHORT).show();

}

/**

  • 这里需要注意,当我们使用requestEach后,上面对应的权限,

  • 下面都会执行一遍

  • 例如,你上面8个权限都同意后,然后到达这里,

  • 在走8次的permission.granted的判断语句

  • 因此,使用时再加上permission.name判断一下更为合理

*/

if (permission.granted) {

//用户已经同意该权限

Toast.makeText(OneByOneActivity.this,

“用户已经同意该权限”, Toast.LENGTH_SHORT).show();

} else if (permission.shouldShowRequestPermissionRationale) {

// 用户拒绝了该权限,没有选中『不再询问』(Never ask again),

// 那么下次再次启动时,还会提示请求权限的对话框

Toast.makeText(OneByOneActivity.this,

“用户拒绝了该权限,没选中『不再询问』”, Toast.LENGTH_SHORT).show();

} else {

// 用户拒绝了该权限,并且选中『不再询问』

标签:Toast,Manifest,permission,适配,show,RxJava2,LENGTH,RxPermissions,权限
来源: https://blog.csdn.net/m0_65145426/article/details/122083220

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有