Downloadmanager的替代品,用于将文件直接存储到外部SD卡

时间:2018-09-26 21:39:09

标签: android xamarin documentfile

我一直在争论如何使用Downloadmanager并写入虚拟外部sd卡。

使用以下代码向用户显示目录选择器:

Intent intent = new Intent(Intent.ActionOpenDocumentTree);
CrossCurrentActivity.Current.Activity.StartActivityForResult(intent, 1);

Dirselector

选择“下载”后,结果为Uri,如下所示:

  

content://com.android.externalstorage.documents/tree/11FA-361A%3ADownload/document/11FA-361A%3Download

对于Downloadmanager.Request.SetDestinationUri,此“路径”没有太大用处:https://developer.android.com/reference/android/app/DownloadManager.Request.html#setDestinationUri(android.net.Uri)它指出:

  

“必须是外部存储路径上的文件URI,并且调用   应用程序必须具有WRITE_EXTERNAL_STORAGE权限。”

系统中SD卡的实际路径为

  

generic_x86:/ $ su
  generic_x86:/#cd mnt / media_rw / 11FA-361A /
  generic_x86:/ mnt / media_rw / 11FA-361A#ls
  LOST.DIR下载

此路径不适用于普通应用程序/用户,我的应用程序无需root即可执行此操作。阅读此线程Universal way to write to external SD card on Android后,我发现获取实际路径几乎没有用。在Orio模拟器中调用时,GetExternalFilesDirs()仅返回我的“内部sd卡”。

那么$ 100.000的问题;是否可以通过DocumentFile以任何方式使用Downloadmanager?
一个不好的选择是将临时文件下载到“内部SD卡”,然后将文件移动到“已安装SD卡”。

是否有Xamarin的替代下载器可以处理此问题?

0 个答案:

没有答案