Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RxPermissions使用

RxPermissions使用

作者头像
zhangjiqun
发布于 2024-12-16 09:20:14
发布于 2024-12-16 09:20:14
18900
代码可运行
举报
文章被收录于专栏:计算机工具计算机工具
运行总次数:0
代码可运行

 RxPermissions使用

基于RxJava2,使用包名为com.tbruyelle.rxpermissions2的RxPermissions。

5.1 App module的build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {
    ...
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'io.reactivex.rxjava2:rxjava:2.0.5'
    compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'
    ...
}

5.2 AndroidManifest.xml中使用权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <!-- protection level is dangerous, need request runtime permission -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.READ_CALENDAR"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>

5.3 在Activity的onCreate()中申请权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.galian.rxjavatest;

import android.Manifest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions;

import io.reactivex.functions.Consumer;

public class RxPermissionTestActivity extends AppCompatActivity {

    private static final String TAG = "RxPermissionTest";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rx_permission_test);

        requestPermissions();
    }

    private void requestPermissions() {
        RxPermissions rxPermission = new RxPermissions(RxPermissionTestActivity.this);
        rxPermission
                .requestEach(Manifest.permission.ACCESS_FINE_LOCATION,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE,
                        Manifest.permission.READ_CALENDAR,
                        Manifest.permission.READ_CALL_LOG,
                        Manifest.permission.READ_CONTACTS,
                        Manifest.permission.READ_PHONE_STATE,
                        Manifest.permission.READ_SMS,
                        Manifest.permission.RECORD_AUDIO,
                        Manifest.permission.CAMERA,
                        Manifest.permission.CALL_PHONE,
                        Manifest.permission.SEND_SMS)
                .subscribe(new Consumer<Permission>() {
                    @Override
                    public void accept(Permission permission) throws Exception {
                        if (permission.granted) {
                            // 用户已经同意该权限
                            Log.d(TAG, permission.name + " is granted.");
                        } else if (permission.shouldShowRequestPermissionRationale) {
                            // 用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时。还会提示请求权限的对话框
                            Log.d(TAG, permission.name + " is denied. More info should be provided.");
                        } else {
                            // 用户拒绝了该权限,而且选中『不再询问』
                            Log.d(TAG, permission.name + " is denied.");
                        }
                    }
                });


    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android 设备唯一标识(适配Android版本)
  相信在看这篇文章之前你已经看过一些类似的文章了,那么你肯定知道自己想要的是什么。
晨曦_LLW
2020/12/16
4.8K0
Android 设备唯一标识(适配Android版本)
手把手教你搭建android模块化项目框架(五)权限工具封装
android6.0以上需要动态请求权限,这里不多废话了,想达到一个简单高效的权限使用方式,就跟我一步一步去封装。
支离破碎_superLee
2023/09/01
2720
Android EasyPermission优雅地实现动态权限申请
Google开源的动态权限适配库,用起来比较简洁和清晰,总体还不错,如果喜欢链式调用的就用 RxPermission 或者 AndPermission 都是不错的选择。
程序员飞飞
2020/02/27
2.3K0
因为Android M权限问题导致的"Permission Denial: reading com.android.providers.media.MediaProvider"解决办法
最后查明是因为API过高权限访问有修改, 在API级别>=23时, 权限访问被分为三个级别, 分别为”PROTECTION_NORMAL, PROTECTION_DANGEROUS, 和PROTECTION_SIGNATURE(还有两个标志可以和SIGNATURE联合使用才有意义)”. PROTECTION_NORMAL是普通权限, 通过manifest文件在安装时被授予. PROTECTION_SIGNATURE是签名权限, 通过”检查manifest和app签名是否匹配app中声明的权限”在安装时授予. 对于 PROTECTION_DANGEROUS, 不仅需要在manifest中声明, 还需要在运行时通过requestPermissions获得, 也就是弹出来一个个对话框, 让用户确认是否授予app这些权限. 这些是常见PROTECTION_DANGEROUS权限, 如果你在程序中使用了, 那么在API>=23, 很可能会不正常工作. ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION ADD_VOICEMAIL BODY_SENSORS CALL_PHONE CAMERA GET_ACCOUNTS PROCESS_OUTGOING_CALLS READ_CALENDAR READ_CALL_LOG READ_CELL_BROADCASTS READ_CONTACTS READ_EXTERNAL_STORAGE READ_PHONE_STATE READ_SMS RECEIVE_MMS RECEIVE_SMS RECEIVE_WAP_PUSH RECORD_AUDIO SEND_SMS USE_SIP WRITE_CALENDAR WRITE_CALL_LOG WRITE_CONTACTS WRITE_EXTERNAL_STORAGE
望天
2018/08/02
2.8K0
Android6.0动态权限适配&XMPermissions
从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的“Settings”屏幕调用权限。摘自Android官网:在运行时请求权限。
静默加载
2020/05/29
1.4K0
大疆无人机 MobileSDK(遥控器/手机端)开发 v4版<1>
刚刚结束了项目交付,趁热打铁分享一下这次遇到的新东西。首先了解一下大疆的无人机,它大致可以分为三级。
爱吃土豆丝的打工人
2023/10/14
1.1K0
大疆无人机 MobileSDK(遥控器/手机端)开发 v4版<1>
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
  我之前写过百度的语音识别,也写过讯飞的语音识别与合成,而有读者看完后说没有百度的语音合成,想在用百度语音识别的同时使用百度的语音合成。所以就有了这篇文章,我的文章也是区别于其他人的文章,所以我有自己的风格。
晨曦_LLW
2021/05/10
3.1K0
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
项目需求讨论 — 手把手带你写RxPermission
首先既然是Rx系列,前提是会Rxjava相关的基本知识,如果没有Rxjava的相关知识,请补好Rxjava相关知识再来看。
青蛙要fly
2018/08/29
6910
项目需求讨论 — 手把手带你写RxPermission
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
权限判定 : 首先要判定是否已经授权指定的权限数组 ; 调用 EasyPermissions.hasPermissions 方法 , 进行判定 ;
韩曙亮
2023/03/28
2.5K0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
Android 选择图片、上传图片之Matisse
就目前效果图来看,好像也没什么毛病哈,其实我这个集成的过程是有点坎坷的。 而且,功能也不算是很齐全吧…主要体现在以下几个点
yechaoa
2022/06/10
1.9K0
Android 选择图片、上传图片之Matisse
【详解】Android自动挂断电话的实现
在开发Android应用时,有时会遇到需要实现自动挂断电话的需求。例如,在某些特定情况下(如用户正在使用某个重要功能时),不希望电话打断用户的操作。本文将介绍如何在Android中实现自动挂断电话的功能。
大盘鸡拌面
2025/04/21
1670
Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用
PermissionsDispatcher2.3.2使用 Android6.0权限官网 https://developer.android.com/about/versions/marshmallo
庞小明
2018/03/07
1.6K0
Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用
Android解决读取txt文件中文乱码问题,reload和cnvert区别,按行读取txt文件,按 |进行字符串分割
在你所在的activity中设置编码格式,一般采用utf,有的采用gbk数据一般是别人下发数据你进行接收,那么就必须采用gbk进行格式转化;
zhangjiqun
2024/12/16
2850
Android解决读取txt文件中文乱码问题,reload和cnvert区别,按行读取txt文件,按  |进行字符串分割
TI--安卓运行时权限完美封装
零、前言: [1]两行代码解决运行时权限 [2]用户拒绝后显示提示信息,有再次验证功能 [3]验证成功回调 一个权限效果: 一个权限效果.gif 六个权限演示: 六个权限演示.gif 一、代
张风捷特烈
2018/09/26
8930
Android 百度地图SDK 自动定位、标记定位
如果是你满意的那样,我们就可以开始写了,首先创建一个名为MapDemo的项目。 打开AndroidManifest.xml,复制你的包名
晨曦_LLW
2022/05/10
2.8K1
Android 百度地图SDK 自动定位、标记定位
Android 更换用户头像(拍照、相册选取)
  做Android应用开发,通常是有很多的功能组成,今天就来看一下这个用户头像更换的功能该怎么去写。相信很多的小伙伴都写过这个功能,因为作为一个APP来说这是很普遍的功能,基本都会有。只要你的APP有用户模块,就会有用户的个人信息的修改,比如常规的手机号码修改、地址修改、头像修改、昵称修改等。这里面技术含量高一点的就是头像修改了,进入正题吧。
晨曦_LLW
2022/05/10
2K0
Android 更换用户头像(拍照、相册选取)
【Android从零单排系列四十四】《聊一下Android数据权限permission》
小伙伴们,在前面的几篇文章中,我们谈到了Android开发中的几种数据存储方式及数据持久化,本文我们介绍下Android开发中的另一部分内容,权限管理。
再见孙悟空_
2023/07/17
1.2K0
Android 【动态获取权限的工具类】
当前Activity需要实现PermissionsUtilX.IPermissionsCallback接口
全栈程序员站长
2021/04/07
1.1K0
Android RxJava应用:优雅实现网络请求轮询(无条件)
Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。
Carson.Ho
2022/03/25
1K0
Android RxJava应用:优雅实现网络请求轮询(无条件)
项目需求讨论 - 动态权限申请分析及相关第三方库源码分析
在具体项目开发中,关于Android的动态申请权限的功能,我想大家都见怪不怪了。很多人开发的app中也都使用过这块需求。
青蛙要fly
2018/08/29
2.1K0
项目需求讨论 - 动态权限申请分析及相关第三方库源码分析
推荐阅读
Android 设备唯一标识(适配Android版本)
4.8K0
手把手教你搭建android模块化项目框架(五)权限工具封装
2720
Android EasyPermission优雅地实现动态权限申请
2.3K0
因为Android M权限问题导致的"Permission Denial: reading com.android.providers.media.MediaProvider"解决办法
2.8K0
Android6.0动态权限适配&XMPermissions
1.4K0
大疆无人机 MobileSDK(遥控器/手机端)开发 v4版<1>
1.1K0
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
3.1K0
项目需求讨论 — 手把手带你写RxPermission
6910
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
2.5K0
Android 选择图片、上传图片之Matisse
1.9K0
【详解】Android自动挂断电话的实现
1670
Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用
1.6K0
Android解决读取txt文件中文乱码问题,reload和cnvert区别,按行读取txt文件,按 |进行字符串分割
2850
TI--安卓运行时权限完美封装
8930
Android 百度地图SDK 自动定位、标记定位
2.8K1
Android 更换用户头像(拍照、相册选取)
2K0
【Android从零单排系列四十四】《聊一下Android数据权限permission》
1.2K0
Android 【动态获取权限的工具类】
1.1K0
Android RxJava应用:优雅实现网络请求轮询(无条件)
1K0
项目需求讨论 - 动态权限申请分析及相关第三方库源码分析
2.1K0
相关推荐
Android 设备唯一标识(适配Android版本)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验