1.添加依赖  
implementation 'com.qw:soulpermission:1.1.8'

2.

SoulPermission.getInstance().checkAndRequestPermissions(                        Permissions.build(Manifest.permission.RECORD_AUDIO                        ),                        new CheckRequestPermissionsListener() {                            @Override                            public void onAllPermissionOk(com.qw.soul.permission.bean.Permission[] allPermissions) {                                //获取到权限写你要做的代码                            }                            @Override                            public void onPermissionDenied(com.qw.soul.permission.bean.Permission[] refusedPermissions) {                    //用户拒绝权限 并且不再提示 时候需要这样写                                if (Build.VERSION.SDK_INT >= 23) {                                    if (!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.RECORD_AUDIO)) {                                        new AlertDialog.Builder(MainActivity.this).setTitle("权限设置")//设置对话框标题                                                .setMessage(                                                        "获取麦克风权限失败," +                                                                "将导致部分功能无法正常使用,需要到设置页面手动授权")//设置显示的内容                                                .setPositiveButton("去授权", new DialogInterface.OnClickListener() {//添加确定按钮                                                    @Override                                                    public void onClick(DialogInterface dialog, int which) {//确定按钮的响应事件                                                        //TODO Auto-generated method stub                                                        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);                                                        Uri uri = Uri.fromParts("package", getApplicationContext().getPackageName(), null);                                                        intent.setData(uri);                                                        startActivity(intent);                                                        dialog.dismiss();                                                    }                                                }).setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加返回按钮                                            @Override                                            public void onClick(DialogInterface dialog, int which) {//响应事件                                                // TODO Auto-generated method stub                                                dialog.dismiss();                                            }                                        }).setOnCancelListener(new DialogInterface.OnCancelListener() {                                            @Override                                            public void onCancel(DialogInterface dialog) {//                                            mRequestPermissionCallBack.denied();                                            }                                        }).show();//在按键响应事件中显示此对话框                                    }                                }                            }                        });

 

更多相关文章

  1. Android(安卓)MID BootSound
  2. PackageManagerService简介
  3. Android(安卓)之怎么删除eclipse自动生成的//TODO Auto-generate
  4. Android热修复实战
  5. Android(安卓)对话框用法
  6. Android时间选择器对话框的使用
  7. Android(安卓)alertdialog的按钮点击后不消失
  8. Android中WebView详解
  9. Android(安卓)studio 点击按钮跳转到新的Activity

随机推荐

  1. Gradle 构建 android 应用常见问题解决指
  2. Android(安卓)4.0 SDK 环境搭建体验(Windo
  3. android 联系人源码分析 新字段的添加流
  4. Android(安卓)TextView属性详解
  5. error: Error parsing XML: unbound pref
  6. 快速上手Android数据库操作
  7. Android推送通知指南
  8. Android中的动画研究
  9. android sdk离线升级方法
  10. Google Map Android(安卓)v2开发: 安装运