Android 应用请求存储权限:使用 Material Dialog 库
使用 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);
}
}
}
}
代码说明:
- 首先检查 Android 版本是否大于等于 M 版本 (Android 6.0)。
- 使用
ContextCompat.checkSelfPermission方法检查是否已获得存储权限。 - 如果未获得权限,并且需要向用户解释原因,使用
ActivityCompat.shouldShowRequestPermissionRationale方法判断是否需要显示解释对话框。 - 使用 Material Dialog 库创建一个对话框,并设置标题、内容、确认按钮和取消按钮。
- 在确认按钮的点击事件中,使用
ActivityCompat.requestPermissions方法向用户请求存储权限。 - 在取消按钮的点击事件中,关闭对话框。
使用 Material Dialog 库:
- 在项目的
build.gradle文件中添加 Material Dialog 库依赖:
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
- 确保在应用的清单文件中声明存储权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
注意:
STORAGE_PERMISSION_CODE是一个常量,用于标识存储权限请求。- 请根据实际情况调整对话框的标题、内容和按钮文字。
- 使用 Material Dialog 库可以创建美观且易于使用的对话框,提高用户体验。
原文地址: https://www.cveoy.top/t/topic/iESm 著作权归作者所有。请勿转载和采集!