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

Android:存储访问框架 - 只需要将文件复制到 extSD

如何解决Android:存储访问框架 - 只需要将文件复制到 extSD

Android 上的现有 Xamarin Forms 应用。 老板的新功能请求:将一些更新的文件从USB闪存驱动器复制到平板电脑中已有的extSD上的已知目录。

似乎不需要博士学位。迄今为止,我们所做的一切都在内部存储中,因此典型的 System.IO 调用可以正常工作。但 Android 为外部 SD、Google Drive 或其他任何地方准备了完整的存储访问框架。

我看到的每个问题和教程都针对同一件事:如何打开 SD 卡的文档浏览器,或者如何创建新的 CREATE DOCUMENT INTENT。

我不打算做任何这些。不需要用户界面。不要从头开始制作新的文本文件

我只想将文件从闪存驱动器复制到 extSD。其他一切都已准备就绪,可以对内部存储执行此操作。 Easy-Pezy。 从闪存驱动器复制到内部 SD 时只有一行。

FileInfo.copyTo(targetAddress,true);

如何将文件复制到 extSD?我真的需要 200 行开销来制作一个 DOCUMENTPROVIDER、CONTRACT 和其他 20 件东西来复制一个文件吗?我得到的只是“拒绝访问 extSD 1234-5678”。似乎获得卡的权限应该相当简单,然后只需复制一个文件或创建一个文件夹。但我发誓,我为 SAF 读到的所有内容听起来都像是您必须首先为他们开设 10 个课程和一名经理。

有没有人有一个简单的例子来说明获得对 extSD 的写权限并从 A 复制到 B 的极简方式?

解决方法

如果它只复制一个文件,那就很简单了。让用户选择带有 ACTION_OPEN_DOCUMENT 的文件。您将获得该文件的 uri。现在让用户使用 ACTION_CREATE_DOCUMENT 在正确的位置创建一个文件。你得到了另一个 uri。现在为这些 uri 打开一个 InputStream 和一个 OutputStream。然后从输入读取字节并写入输出。少于 200 行 ;-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。