1分钟搞定Android(安卓)动态权限申请

    从Android 6.0 开始,涉及到用户的敏感信息的权限,不仅仅在Manifest中声明之后,就可以得到相应的权限,而是需要在运行中动态的申请权限。

    按照谷歌官方文档在运行时请求权限,如果一个App在不同的页面都需要申请权限的话,那么,这将会是一个重复性很高而且很费时间的Coding。

    程序猿都是懒的,我也不例外,于是乎,我自己封装了一个动态请求权限的工具类,帮助开发者在1分钟搞定权限申请。

使用方法:

1、在需要申请权限的Activity或者Fragment中 implements PermissionsUtil.IPermissionsCallback

2、在需要申请权限的地方调用:

1、一次申请单个权限

permissionsUtil = PermissionsUtil

                           .with(this)

                          .requestCode(0)

                          .isDebug(true)

                          .permissions(PermissionsUtil.Permission.Camera.CAMERA)  

                          .request();

2、一次申请多个权限

permissionsUtil=  PermissionsUtil

                         .with(this)

                        .requestCode(1)

                        .isDebug(true)//开启log

                        .permissions(PermissionsUtil.Permission.Storage.READ_EXTERNAL_STORAGE,

   PermissionsUtil.Permission.Location.ACCESS_FINE_LOCATION)

                        .request();

3、在onRequestPermissionsResult中调用

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

               //需要调用onRequestPermissionsResult

               permissionsUtil.onRequestPermissionsResult(requestCode, permissions, grantResults);

               super.onRequestPermissionsResult(requestCode, permissions, grantResults);

}

4、在onActivityResult中调用

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

               //监听跳转到权限设置界面后再回到应用

               permissionsUtil.onActivityResult(requestCode, resultCode, data);

               super.onActivityResult(requestCode, resultCode, data);

}

5、获得申请的权限

@Override

public void onPermissionsGranted(int requestCode, String... permission) {

             //权限获取回调

}

6、用户拒绝了申请的权限

@Override

public void onPermissionsDenied(int requestCode, String... permission) {

           //权限被拒绝回调

}

    1分钟搞定权限申请的工具类,可以从github上clone并查看使用方法。

你可能感兴趣的:(1分钟搞定Android(安卓)动态权限申请)