请打开读取外置存储权限

作者:苍叔佳 | 发布日期:2024-05-07 09:10:26



概述
读取外置存储权限允许应用程序访问设备上的外部存储,例如 SD 卡或 USB 存储器,以读取文件和文件夹。 此权限对于应用程序执行以下操作至关重要:
访问用户下载到设备上的数据
读入外部存储中的媒体文件(例如图像、视频)
与其他设备共享外部存储中的数据
请求权限
在 Android 设备上请求读取外置存储权限涉及使用以下步骤:
1. 在 AndroidManifest.xml 中声明权限:
xml

2. 在运行时动态请求权限:
kotlin
val requestPermissionIntent = PermissionManager.createRequest(
this, // 当前活动
Manifest.permission.READ_EXTERNAL_STORAGE, // 权限名称
REQUEST_EXTERNAL_STORAGE // 自定义请求代码
)
startActivityForResult(requestPermissionIntent, REQUEST_EXTERNAL_STORAGE)
处理权限结果
在用户对权限请求做出响应后,应用程序需要处理结果。 应用程序应检查以下方法中的权限是否已授予:
kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_EXTERNAL_STORAGE && resultCode == Activity.RESULT_OK) {
// 权限已授予
} else {
// 权限已被拒绝
}
}
最佳做法
当请求读取外置存储权限时,请考虑以下最佳做法:
充分说明使用目的:在请求权限之前,明确告知用户应用程序需要权限的原因。
最小化权限使用:只在应用程序绝对需要时才请求该权限。
处理权限拒绝:优雅地处理权限被拒绝的情况。 例如,提供替代功能或解释为什么该权限对于应用程序至关重要。
遵循隐私法规:遵守所有适用的隐私法规和准则,例如 GDPR。
其他注意事项
读取外置存储权限与写入外置存储权限不同。 两者需要单独请求。
Android 11 及更高版本对访问外部存储实施了更细粒度的 controls。 应用程序需要在 targetSdkVersion 设置为 30 或更高时请求 [android.permission.MANAGE_EXTERNAL_STORAGE](http://developer.android.com/reference/android/Manifest.permission#MANAGE_EXTERNAL_STORAGE) 权限,以管理所有存储空间。