使用 Material Dialog 请求存储权限

本文将展示如何使用 Material Dialog 库来请求 Android 应用的存储权限。

代码示例:

private void requestStoragePermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                new MaterialDialog.Builder(this)
                        .title('我们需要权限')
                        .content('我们要用这个权限来下载和管理文件(必要权限)')
                        .positiveText('同意')
                        .negativeText('拒绝')
                        .onPositive(new MaterialDialog.SingleButtonCallback() {
                            @Override
                            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                                ActivityCompat.requestPermissions(MainActivity.this,
                                        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
                            }
                        })
                        .onNegative(new MaterialDialog.SingleButtonCallback() {
                            @Override
                            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                                dialog.dismiss();
                            }
                        })
                        .show();
            } else {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
            }
        }
    }
}

代码说明:

  1. 首先检查 Android 版本是否大于等于 M 版本 (Android 6.0)。
  2. 使用 ContextCompat.checkSelfPermission 方法检查是否已获得存储权限。
  3. 如果未获得权限,并且需要向用户解释原因,使用 ActivityCompat.shouldShowRequestPermissionRationale 方法判断是否需要显示解释对话框。
  4. 使用 Material Dialog 库创建一个对话框,并设置标题、内容、确认按钮和取消按钮。
  5. 在确认按钮的点击事件中,使用 ActivityCompat.requestPermissions 方法向用户请求存储权限。
  6. 在取消按钮的点击事件中,关闭对话框。

使用 Material Dialog 库:

  1. 在项目的 build.gradle 文件中添加 Material Dialog 库依赖:
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
  1. 确保在应用的清单文件中声明存储权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

注意:

  • STORAGE_PERMISSION_CODE 是一个常量,用于标识存储权限请求。
  • 请根据实际情况调整对话框的标题、内容和按钮文字。
  • 使用 Material Dialog 库可以创建美观且易于使用的对话框,提高用户体验。
Android 应用请求存储权限:使用 Material Dialog 库

原文地址: https://www.cveoy.top/t/topic/iESm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录