PermissionsDispatcher权限申请插件

QuibblerQuibbler 2021-01-08 约 6 分钟 1757 次阅读

PermissionsDispatcher权限申请插件

AndroidStudio有丰富的插件库,插件开发起来也不难,以后有好的想法,可以自己开发一个插件。之前介绍了一个权限开源库PermissionsDispatcher:权限申请注解,对应的还有一个插件,都是为了方便开发者提高开发效率。

GitHub:github/permissions-dispatcher/permissions-dispatcher-plugin

1、安装插件

Settings > Plugins中搜索PermissionsDispatcher,安装插件。是非常受欢迎的一个插件,下载安装量比GitHub上的start还多。


2、使用插件

开发者开发的插件菜单都选择放在Generate选项这里

2.1、添加依赖

项目中如果还没有添加PermissionsDispatcher依赖,Alt + Ins快速打开菜单,选择Add PermissionsDispatcher dependencies

插件会帮我们自动添加对应的依赖到build.gradle中,和jcenter()仓中的版本不太一样。

implementation 'com.github.hotchemi:permissionsdispatcher:3.1.0'
    annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:3.1.0'

2.2、生成权限申请相关代码

依赖配置好之后,在Activity或者Fragment代码中选择Generate Runtime Permissions选项

弹出的菜单选择需要动态申请的权限,这里直观的进行了分类。勾选需要的权限和注解,以及注解对应的方法(如果不存在会自动创建)

3、生成的代码

插件会帮开发者生成好代码,重写onRequestPermissionsResult()权限回调方法。开发者只需要专注实现自己的业务方法即可。

@RuntimePermissions
	public class PermissionActivity3 extends AppCompatActivity {
	
	    @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_permission);
	    }
	    
	    @NeedsPermission({Manifest.permission.SEND_SMS, Manifest.permission.RECEIVE_SMS, Manifest.permission.READ_SMS})
	    void sendSms() {
	        //
	    }
	    
	    @OnShowRationale({Manifest.permission.SEND_SMS, Manifest.permission.RECEIVE_SMS, Manifest.permission.READ_SMS})
	    void showTips(final PermissionRequest request) {
	    }
	    
	    @OnPermissionDenied({Manifest.permission.SEND_SMS, Manifest.permission.RECEIVE_SMS, Manifest.permission.READ_SMS})
	    void onDenied() {
	    }
	    
	    @Override
	    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
	        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
	        PermissionActivity3PermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
	    }
	    
	}

看到这么多大牛写出受开发者欢迎的插件、开源库,很是羡慕,不断沉淀积累也要写一个自己的插件。

相关推荐

精选
国内开源镜像站点
分享

国内开源镜像站点

国内开源镜像站点开源,(Open Source)全称为开放源代码。开源就是要用户利用源代码在其基础上修改和学习的,但开源系统同样也有版权,同样也受到法律保护。国内的高校和一些企业也建立了开源镜像站点,支持开源。从开源站点上面可以下载很多开源资源(Android源码),上大学的时候就在这些镜像网站上下载Linux发行版、Qt等软件。 清华大学:http://mirrors.tuna.tsinghua

2.4k
R8编译问题:Missing classes detected while running R8
分享

R8编译问题:Missing classes detected while running R8

R8编译问题:Missing classes detected while running R8Android R8是一个代码混淆和压缩工具,可以将应用程序的大小和安全性优化。它引入了一些新功能,如成员内省、混淆指针、类内省等。但R8使用起来一直不友好,因为自从使用R8之后编译问题不断。主要还是和混淆相关,经常报错,最近又遇到一个:Missing classes detected while ru

8.4k
maven { url 'https://jitpack.io' } 无法下载的问题
分享

maven { url 'https://jitpack.io' } 无法下载的问题

解决maven { url 'https://jitpack.io' } 无法下载的问题要使用GitHub上项目的开源库,比如 BRV ,加强版的RecyclerView框架:需要在项目根目录的 build.gradle 添加 jitpack 仓库:以上这些都照做了,却遇到Gradle无法下载依赖的问题。这种情况以前也遇到过,一般是由于网络故障引起的,可以用国内的镜像仓库。尝试了不同方法,仍然无法

6.6k