【发布时间】:2014-10-07 20:21:50
【问题描述】:
我的 FileProvider 工作得非常好,我可以将文件共享给任何应用程序,这是我的代码:
文件路径.xml:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<!-- choose between cache-path (cache storage), files-path (app-private storage) and external-path (external storage) -->
<cache-path path="/" name="strips" />
</paths>
设置分享意图:
File f = new File(_fileFullName);
var contentUri = FileProvider.GetUriForFile(this,
G.FileProviderAuthorityName,
f);
intent.PutExtra(Intent.ExtraStream, contentUri);
_shareProvider.SetShareIntent(intent);
这非常有效。我忘了在这里提到我的文件通常在应用程序缓存目录的子文件夹中,无论它们在哪里(文件夹是动态创建的),它都可以工作。
但是,当我将 xml 从缓存路径更改为文件路径(AppPrivate 存储)时,我得到 IllegalArgumentException:
未能找到配置的根目录包含 /storage/emulated/0/Android/data/app.namespace/files/subfolder/data.png 在 GetUriForFile 调用上。
我已经尝试了 FilePaths.xml 中的所有变体,用谷歌搜索了所有我能找到的答案。
【问题讨论】:
标签: android