easypermissions使用

本文介绍了如何在Android应用中使用easypermissions库进行权限管理。首先,需要在appgradle中添加依赖,并让Activity实现EasyPermissions.PermissionCallbacks接口。接着,在界面显示时请求所需权限,可以自定义方法并使用注解简化权限请求后的处理。特别是AfterPermissionGranted注解,当所有请求的权限都被授予时,被注解的方法将自动执行,避免了常规的回调逻辑。最后,需要复写EasyPermissions.PermissionCallbacks接口中的两个方法来完成权限请求的响应处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

easypermissions使用

[url]https://github.com/googlesamples/easypermissions

代码分析()

[url]http://www.tuicool.com/articles/uyemIfi

appgradle中加入依赖

compile 'pub.devrel:easypermissions:0.1.7'

当前activity实现EasyPermissions.PermissionCallbacks接口

界面显示时请求权限(自定义方法)

    @Override
    protected void onStart() {
        super.onStart();
        //申请对应权限(自定义方法)
        requestMyPermission();
    }

自定义方法上使用注解使用

AfterPermissioonGranted 注解。这是可选的,但是提供出来是为了方便。如果所有的请求的权限都被授予了,被注解的方法将会被执行,这样做是为了简化通常的请求权限成功之后再调用方法的流程。同时也可以在onPermissionsGranted 的回调中添加逻辑操作,也就是说如果有该注解的话,那么当request值对应的权限申请通过的话会自动调用该方法。

     /**
     * 请求权限定义一个final的请求码
     */
    private static final int REQUEST_CODE_QRCODE_PERMISSIONS = 1;
    @AfterPermissionGranted(REQUEST_CODE_QRCODE_PERMISSIONS)
    private void requestMyPermission() {
        //需要申请的权限(访问相机的权限,和内存卡的权限等等权限)
        String[] perms = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};
        // 检查是否有该权限,没有的话就去申请
        if (!EasyPermissions.hasPermissions(this, perms)) {
            //第二个参数是被拒绝后再次申请权限的解释
            //第三个参数是请求码
            //第四个参数要申请的权限
            EasyPermissions.requestPermissions(this, "扫描二维码需要打开相机和散光灯的权限", REQUEST_CODE_QRCODE_PERMISSIONS, perms);
        }
    }

复写此方法

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        //把申请权限的回调交由EasyPermissions处理
        EasyPermissions.onRequestPermissionsResult(requestCode,permissions,grantResults,this);
    }

实现对应接口时复写两个方法

    @Override
    public void onPermissionsGranted(int requestCode, List<String> perms) {
        //此处表示权限申请已经成功,可以使用该权限完成app的相应的操作了
        Toast.makeText(this,"权限申请成功",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPermissionsDenied(int requestCode, List<String> perms) {
        //此处表示权限申请被用户拒绝了,此处可以通过弹框等方式展示申请该权限的原因,以使用户允许使用该权限
        Toast.makeText(this,"权限申请成功",Toast.LENGTH_SHORT).show();
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值