Android (Xamarin) навигация по дереву папок через Storage Access Framework Uri - PullRequest
0 голосов
/ 05 февраля 2020

Пытаясь перемещаться по дереву папок с помощью Storage Access Framework и Uri, я вижу некоторое неожиданное поведение. Короче говоря, мой тестовый пример представляет собой двусторонний тест DocumentFile -> Uri -> DocumentFile -> Uri test. (код для Xamarin, но это базовые классы Android, поэтому он не должен быть языковым спецификацией c.)

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: Мои ожидания здесь? Не следует ли ожидать возможности навигации по дереву папок SAF с помощью Uri?

Вопрос 2: Если да, то каков подходящий обходной путь?

...