Android

Android简单的权限请求库,使用接口回调

2020-01-23  本文已影响0人  Devil_Chen

简介

简单写了一个权限请求的库。

依赖

根bulid.gradle添加

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

在项目bulid.gradle添加

dependencies {
    implementation 'com.github.Devil-Chen:DVPermissionHelper:1.0.0'
}

在类中定义了一些常用的权限,可直接使用

    /**通讯录权限*/
    public static final String[] PERMISSION_CONTACTS = new String[]{
            Manifest.permission.WRITE_CONTACTS,
            Manifest.permission.GET_ACCOUNTS,
            Manifest.permission.READ_CONTACTS
    };

    /**电话*/
    public static final String[] PERMISSION_PHONE = new String[]{
            Manifest.permission.READ_CALL_LOG,
            Manifest.permission.READ_PHONE_STATE,
            Manifest.permission.CALL_PHONE,
            Manifest.permission.WRITE_CALL_LOG,
            Manifest.permission.USE_SIP,
            Manifest.permission.PROCESS_OUTGOING_CALLS,
            Manifest.permission.ADD_VOICEMAIL
    };

    /**日历*/
    public static final String[] PERMISSION_CALENDAR = new String[]{
            Manifest.permission.READ_CALENDAR,
            Manifest.permission.WRITE_CALENDAR
    };

    /**相机*/
    public static final String[] PERMISSION_CAMERA = new String[]{
            Manifest.permission.CAMERA
    };

    /**传感器*/
    @RequiresApi(api = Build.VERSION_CODES.KITKAT_WATCH)
    public static final String[] PERMISSION_SENSORS = new String[]{
            Manifest.permission.BODY_SENSORS
    };

    /**位置*/
    public static final String[] PERMISSION_LOCATION = new String[]{
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION
    };

    /**存储*/
    public static final String[] PERMISSION_FILE_STORAGE = new String[]{
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };

    /**麦克风*/
    public static final String[] PERMISSION_MICROPHONE = new String[]{
            Manifest.permission.RECORD_AUDIO
    };

    /**短信*/
    public static final String[] PERMISSION_SMS = new String[]{
            Manifest.permission.READ_SMS,
            Manifest.permission.RECEIVE_WAP_PUSH,
            Manifest.permission.RECEIVE_MMS,
            Manifest.permission.RECEIVE_SMS,
            Manifest.permission.SEND_SMS
    };

具体使用方法

    //判断是否有权限操作
    String[] permissions = DVPermissionUtils.arrayConcatAll(DVPermissionUtils.PERMISSION_CAMERA,DVPermissionUtils.PERMISSION_FILE_STORAGE,DVPermissionUtils.PERMISSION_MICROPHONE);
    if (!DVPermissionUtils.verifyHasPermission(this,permissions)){
        DVPermissionUtils.requestPermissions(this, permissions, new DVPermissionUtils.OnPermissionListener() {
            @Override
            public void onPermissionGranted() {
                Toast.makeText(MainActivity.this,"权限申请成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPermissionDenied() {
                Toast.makeText(MainActivity.this,"权限申请失败",Toast.LENGTH_SHORT).show();
            }
        });
    }else{
        Toast.makeText(MainActivity.this,"权限已经申请",Toast.LENGTH_SHORT).show();
    }
});

项目的GitHub地址

上一篇下一篇

猜你喜欢

热点阅读