如何解决我们可以将文件从 Android 共享存储复制到应用程序的文件夹吗?
我想现在每个人都熟悉 Android 针对 api 级别 29+ 引入的最新存储更改。对于 29,他们给出了选择退出这些存储更改的标志。
对于 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 上,如果没有 special permission,您将无法访问不在您的应用范围内的文件(所谓的“私人文件夹”)。这个选择退出标志是出于这个原因 - 您应该尽可能快地实施一些功能,将您的数据从存储中的某个文件夹移动到您的应用程序文件夹
为了访问照片/视频,您仍然可以使用 MediaStore
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。