我们可以将文件从 Android 共享存储复制到应用程序的文件夹吗?



我想现在每个人都已经熟悉了Android针对api级别29+引入的最新存储更改。对于29,他们从这些存储更改中向optout提供了标志。

对于Android 11,我们是否可以将文件从共享存储复制到应用程序的私人文件夹?

try {
if (tempFolder.canWrite()) {
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME, photoNamegagalery);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES);
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream imageOutStream = getContentResolver().openOutputStream(uri);

String destinationImagePath = File.separator + photoNamegagalery;
File source = new File(selectedImagePath);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
Bitmap bitmap = ImageDecoder.decodeBitmap(ImageDecoder.createSource(getContentResolver(), Uri.fromFile(source)));
try {
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, imageOutStream);
} finally {
imageOutStream.close();
}
}
}

在Android 11上,未经特别许可,您无法访问不在应用程序范围内的文件(所谓的"私人文件夹"(。这个选择退出标志是出于这个原因-你应该尽快实现一些功能,将你的数据从存储中的某个文件夹移动到你的应用程序文件夹

对于访问照片/视频,您仍然可以使用MediaStore

相关内容

最新更新