动态权限开源库-EasyPermissions使用

开始导入

compile 'pub.devrel:easypermissions:0.4.0'

需要在 Activity 或者 Fragment 中实现EasyPermissions.PermissionCallbacks 接口

@AfterPermissionGranted(PER_LOACTION)
    public void handleLogin() {
        if (EasyPermissions.hasPermissions(this, PERMS_LOACTION_STATE)) {
            //获取定位
//            mLocationClient.start();
        } else {
            // Ask for one permission
            EasyPermissions.requestPermissions(this, getString(R.string.req_phone_state),
                    PER_LOACTION, PERMS_LOACTION_STATE);
        }
  

hasPermissions 是检查app是否已经拥有此权限 如有则执行相应代码,如没有则调用requestPermissions 去申请权限 。

hasPermissions()第一个参数 : Context参数.例如,Activity对象。第二个参数 : 一些系列的权限

requestPermissions()第一个参数:Context对象。第二个参数:权限弹窗上的文字提示语。告诉用户,这个权限用途。第三个参数:这次请求权限的唯一标示,code。第四个参数 : 一些系列的权限。

public class PermissionManifest {
    /*发短信权限*/
    public final static int PER_SMS = 0X001;
    public final static String[] PERMS_SMS = {Manifest.permission.SEND_SMS};

    /*打电话权限*/
    public final static int PER_CALL = 0X002;
    public final static String[] PREMS_CALL = {Manifest.permission.CALL_PHONE};

    /*定位权限*/
    public final static int PER_LOACTION = 0X003;
    public final static String[] PERMS_LOACTION_STATE = {Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION};



//需要在本身的权限回调方法中将处理结果交由EasyPermission处理
需要在本身的权限回调方法中将处理结果交由EasyPermission处理
@Override public void onRequestPermissionsResult( int requestCode , @NonNull String[] permissions , @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode , permissions , grantResults) ; EasyPermissions. onRequestPermissionsResult(requestCode , permissions , grantResults , this) ;} @Override public void onPermissionsGranted( int requestCode , List<String> perms) { if (requestCode == PER_LOACTION) { // 获取权限成功 // 获取定位 mLocationClient.start() ; }} @Override public void onPermissionsDenied( int requestCode , List<String> perms) { if (requestCode == PER_LOACTION) { // 获取权限失败 GlobalUtil. showToast(getString(R.string. read_phone_state_refuse)) ; }}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值