权限管理6.0

工具很好用:  https://www.jianshu.com/p/d6085c94cb08

不知道怎么导入直接将PermissionUtils复制到自己项目中

然后将下面的代码复制到要调用的activity 调用requestMorePermissions1()方法

    private Context mContext;

    // 相机权限、多个权限

    private final String PERMISSION_CAMERA = Manifest.permission.CAMERA;

    private final String[] PERMISSIONS = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE

            ,Manifest.permission.WRITE_EXTERNAL_STORAGE};


    // 打开相机请求Code,多个权限请求Code

    private final int REQUEST_CODE_CAMERA = 1, REQUEST_CODE_PERMISSIONS = 2;

 // 自定义申请多个权限
private void requestMorePermissions1(){
        PermissionUtils.checkMorePermissions(mContext, PERMISSIONS, new PermissionUtils.PermissionCheckCallBack() {

            @Override

            public void onHasPermission() {
                toClass();

            }



            @Override

            public void onUserHasAlreadyTurnedDown(String... permission) {

                showExplainDialog(permission, new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {

                        PermissionUtils.requestMorePermissions(mContext, PERMISSIONS, REQUEST_CODE_PERMISSIONS);

                    }

                });

            }



            @Override

            public void onUserHasAlreadyTurnedDownAndDontAsk(String... permission) {

                PermissionUtils.requestMorePermissions(mContext, PERMISSIONS, REQUEST_CODE_PERMISSIONS);

            }

        });

    }

    /**
     * 解释权限的dialog
     */

    private void showExplainDialog(String[] permission, DialogInterface.OnClickListener onClickListener) {

        new AlertDialog.Builder(mContext)

                .setTitle("申请权限")

                .setMessage("我们需要" + Arrays.toString(permission) + "权限")

                .setPositiveButton("确定", onClickListener)

                .show();

    }


    /**
     * 显示前往应用设置Dialog
     */

    private void showToAppSettingDialog() {

        new AlertDialog.Builder(mContext)

                .setTitle("需要权限")

                .setMessage("我们需要相关权限,才能实现功能,点击前往,将转到应用的设置界面,请开启应用的相关权限。")

                .setPositiveButton("前往", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        PermissionUtils.toAppSetting(mContext);
                    }
                })

                .setNegativeButton("取消", null).show();

    }


    @Override

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

        switch (requestCode) {

            case REQUEST_CODE_CAMERA:

                if (PermissionUtils.isPermissionRequestSuccess(grantResults))

                {

                    // 权限申请成功

                    toClass();

                } else {

                    Toast.makeText(mContext, "打开相机失败", Toast.LENGTH_SHORT).show();

                }

                break;

            case REQUEST_CODE_PERMISSIONS:

                PermissionUtils.onRequestMorePermissionsResult(mContext, PERMISSIONS, new PermissionUtils.PermissionCheckCallBack() {

                    @Override

                    public void onHasPermission() {

                        toClass();

                    }


                    @Override

                    public void onUserHasAlreadyTurnedDown(String... permission) {

                        Toast.makeText(mContext, "我们需要" + Arrays.toString(permission) + "权限", Toast.LENGTH_SHORT).show();

                    }


                    @Override

                    public void onUserHasAlreadyTurnedDownAndDontAsk(String... permission) {

                        Toast.makeText(mContext, "我们需要" + Arrays.toString(permission) + "权限", Toast.LENGTH_SHORT).show();

                        showToAppSettingDialog();

                    }

                });


        }

    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值