Android自带权限申请方法:

 

1、权限申请:(第二个参数0是requestCode):

String [] permission = {Manifest.permission.ACCESS_FINE_LOCATION};if(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)  != PackageManager.PERMISSION_GRANTED){    requestPermissions(permission,0);}

 2、回调(你可以根据requestCode和permissions来做判断):

    @Override    public void onRequestPermissionsResult(int requestCode,         @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        if(grantResults[0] == PackageManager.PERMISSION_DENIED){            finish();        }    }

第三方库1:RxPermissions:

1、依赖:

allprojects {    repositories {        ...        maven { url 'https://jitpack.io' }    }}dependencies {    implementation 'com.github.tbruyelle:rxpermissions:0.10.2'}

2、使用: 

// Must be done during an initialization phase like onCreaterxPermissions    .request(Manifest.permission.CAMERA)//可填多个权限,逗号隔开    .subscribe(granted -> {        if (granted) { // Always true pre-M           // I can control the camera now        } else {           // Oups permission denied        }    });

附上该库GitHub地址: https://github.com/tbruyelle/RxPermissions


第三方库2:grantor:

1、依赖:

implementation 'com.github.dfqin:grantor:2.5'

2、使用:

/** * 申请录音权限 */private void requestAudioPermission() {    PermissionsUtil.requestPermission(getApplication(), new PermissionListener() {        @Override        public void permissionGranted(@NonNull String[] permissions) {        }        @Override        public void permissionDenied(@NonNull String[] permissions) {            showTip("请开启录音权限");            XunfeiVoiceActivity.this.finish();        }    }, Manifest.permission.RECORD_AUDIO);}/** * 申请存储权限 */private void requestStoragePermission() {    PermissionsUtil.requestPermission(getApplication(), new PermissionListener() {        @Override        public void permissionGranted(@NonNull String[] permissions) {        }        @Override        public void permissionDenied(@NonNull String[] permissions) {            Toast.makeText(MainActivity.this, "没有存储权限将不能预览本地视频", Toast.LENGTH_SHORT).show();        }    }, Manifest.permission.WRITE_EXTERNAL_STORAGE);}

附上该库GitHub地址:https://github.com/dfqin/PermissionGrantor

 

完。

更多相关文章

  1. Android的读写文件及权限设置
  2. 在线安装eclipse cdt的地址
  3. Android 改变屏幕亮度时需添加权限
  4. android在线源码地址
  5. android 获取wifi mac 地址的代码
  6. 如何获取Android IP地址
  7. Android应用程序获取ROOT权限代码

随机推荐

  1. Android:onTouch()和onTouchEvent()的区
  2. Android软键盘弹出,界面整体上移的问题
  3. animation的xml定义中的android:interpol
  4. A-GPS定位与GPS定位的Android简单实现
  5. 健身小管家--android app源码
  6. Android(安卓)软键盘在有scollview,纵向vi
  7. Android——天气预报(酷欧天气)(第三篇)
  8. Android(安卓)KTX简介
  9. Android中Handler Runnable与Thread的区
  10. Android——猜数字小游戏