我无法将捕获的图像存储在(getExternalFilesDir(Environment.DIRECTORY_PICTURES)) Android 11 设备上。
我已经在清单文件中添加了 <uses-permissionandroid:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
权限和所有文件访问权限。但仍无法正常工作。
if (Build.VERSION.SDK_INT >= 30) {
if (!Environment.isExternalStorageManager()) {
try {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse(String.format("package:%s", applicationContext.packageName))
startActivityForResult(intent, 2296)
} catch (e: Exception) {
val intent = Intent()
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
startActivityForResult(intent, 2296)
}
}
}
这段代码在 Android 11 以下的设备上可以正常工作,但在 Android 11 上会发生文件无法创建的问题:File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).toString() + "/" + FolderName)