Android-permissionsdispatcher使用说明

本文介绍了如何使用permissionsdispatcher库来简化Android应用的权限申请流程。首先,文章概述了permissionsdispatcher项目及其目的,指出在处理多Activity权限申请时原生方法的不便。接着,详细阐述了使用permissionsdispatcher前的准备工作,包括AndroidX的简介和如何处理依赖冲突。然后,通过添加依赖、使用注解和修改代码等步骤,展示了permissionsdispatcher的使用方法。最后,作者分享了解决依赖冲突的经验,并强调了使用permissionsdispatcher对代码可读性的提升。
摘要由CSDN通过智能技术生成

简介

  • permissionsdispatcher是一个开源项目,用来简化权限申请,Github地址
  • 很多教程有点老,拿来使用会发现有很多问题

使用情景

  1. 多个Activity涉及申请权限,感觉原生权限申请方法十分费劲
  2. 使用该框架重构代码,增加灵活性和可读性

前期准备工作

  • AndroidX简介:Google 2018开发者大会上发布了androidx,其整理了android.support.xxx和google的其他包。
  • 自support v7:28开始,大部分support包都会迁移到androidx下,官方建议开发者们尽早将项目转移到androidx下。
  • Android Studio提供了从support包迁移至androidx的方法。
  • permissionsdispatcher也提供了androidx支持的版本,但是由于笔者略懒,还没有做support到androidx的迁移,所以本文的例子是使用’com.android.support:appcompat-v7:28.0.0’的。

开始使用

第一步:添加依赖

添加依赖也是有坑的,首先我们要考虑版本问题:

  • 如果你仍然使用support包的话,那么请使用3.x版本的
  • 如果你使用的是androidx的话,那么可以使用4.x版本的,最新版本号可前往github上查看
  • 本文使用3.2.0版本
    在这里插入图片描述
    添加完成后Sync,发现报错如下:
    在这里插入图片描述
    遇到报错,那么要做的就是先读懂报错信息,选取一行来看其大概的意思:
Duplicate class android.support.v13.view.DragStartHelper found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:27.0.2)

其大概的意思是:有一个类重复了,在com.android.support:support-compat:28.0.0包中有一个,在com.android.support:support-v13:27.0.2包中也有一个,这样导致了错误。

所以怎么办呢?首先描述问题,将你的描述输入到百度搜索框中即可。

问题描述:android com.android.support包冲突导致的问题,找到这篇博客

刚好这篇博客遇到的问题和我遇到的类似,做如下修改:
在这里插入图片描述
重新Sync,错误消除!

第二步:使用方式介绍

主要是几个注解,本文不详细介绍,推荐一篇博文

第三步:代码

首先在AndroidManifest.xml中加入相机权限:<uses-permission android:name="android.permission.CAMERA" />
然后看如下代码:

package com.example.permissiondispatherdemo;

import android.Manifest;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

import permissions.dispatcher.NeedsPermission;
import permissions.dispatcher.OnNeverAskAgain;
import permissions.dispatcher.OnPermissionDenied;
import permissions.dispatcher.OnShowRationale;
import permissions.dispatcher.PermissionRequest;
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值