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);
}
}看到这么多大牛写出受开发者欢迎的插件、开源库,很是羡慕,不断沉淀积累也要写一个自己的插件。

