微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决我们可以将文件从 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 举报,一经查实,本站将立刻删除。