android - Android(Xamarin)通过存储访问框架 Uri 导航文件夹树
问题描述
尝试使用存储访问框架和 Uri 导航文件夹树时,我似乎出现了一些意外行为。简而言之,我的测试用例是往返 DocumentFile -> Uri -> DocumentFile -> Uri 测试。(代码适用于 Xamarin,但这些是底层 Android 类,因此它不应该是特定于语言的。)
void Test(DocumentFile folder)
{
var uri = folder.Uri;
//
// Test case is using an SD card mounted in a card trader in a USB hub.
// uri: {content://com.android.externalstorage.documents/tree/1111-1111%3ADCIM/document/1111-1111%3ADCIM%2F110ND810}
//
var folder2 = DocumentFile.FromTreeUri(context, uri);
var uri2 = folder2.Uri;
//
// uri2: {content://com.android.externalstorage.documents/tree/1111-1111%3ADCIM/document/1111-1111%3ADCIM}
//
// At this point I expected uri2 to be equal to uri, but it's not.
// Instead, uri2 points to the parent of uri
//
}
问题1:我的期望在这里吗?我不应该期望能够使用 Uri 导航 SAF 文件夹树吗?
问题 2:如果是这样,什么是合适的解决方法?
解决方案
以下库使使用 SAF 变得如此简单。我认为你不应该得到两个不同的uri!
推荐阅读
- r - 将字符(2012 年 12 月 13 日)转换为 R 中的日期
- javascript - 确定奇数和偶数
- r - RSelenium:抓取一个完整的可扩展表
- textures - Blender - 导出到带有纹理的 DAE
- sql - SQL 与每个 Partition 项的动态时间进行比较
- sql - 使用“newid()”将单行子查询与列交叉连接会导致每一行都有不同的 GUID
- java - 如何在 Eclipse 动态 Web 应用程序中使用 java jar 库
- c# - 使用 Web API 对 JWT 令牌进行单元测试
- ios - 如果我运行一个空的 iOS 应用程序,我的手机在做什么?
- ruby-on-rails - rails + rspec:错误重复或已存在“as:”路线,但我没有任何重复