[Android(Xamarin)通过Storage Access Framework Uri导航文件夹树

问题描述 投票:0回答:1

[尝试使用Storage Access Framework和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:如果是,什么是合适的解决方法?

android xamarin uri storage-access-framework saf
1个回答
0
投票

以下库使使用SAF变得如此容易。我认为您不应该获得两个不同的uri!

https://github.com/madnik7/PortableStorage

© www.soinside.com 2019 - 2024. All rights reserved.