Как подсказать content manager chooser для открытия непосредственно в выбранной позиции с помощью ACTION_OPEN_DOCUMENT_TREE

#android #storage-access-framework #android-11

#Android #хранилище-доступ-фреймворк #android-11

Вопрос:

Когда вы используете ACTION_OPEN_DOCUMENT_TREE для выбора разрешения на путь, по которому хранятся файлы в Android 11, диспетчер содержимого Android по умолчанию по умолчанию открывается по недавно использованному пути, а кнопка «ИСПОЛЬЗОВАТЬ ЭТУ ПАПКУ» по какой-то причине вообще не отображается, даже если этот путь является доступным путем, если толькопользователь вручную перемещается по путям, чтобы перейти к подходящей позиции (или возвращается по пути, открытому по умолчанию, перемещаясь по каталогам, если это выбираемая позиция).

Например. Предположим, что последним путем, используемым пользователем, были Documents . Когда я прошу пользователя выбрать путь, по которому приложение может сохранять файлы, с помощью

 Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
  

вот что появляется:

введите описание изображения здесь

Как вы можете видеть, синей кнопки «ИСПОЛЬЗОВАТЬ ЭТУ ПАПКУ» нет.

Теперь, если пользователь выбирает путь к суперпапке отсюда и снова вводит в Документы, это то, что он видит:

введите описание изображения здесь

Теперь доступна кнопка «ИСПОЛЬЗОВАТЬ ЭТУ ПАПКУ».

Это совершенно бессмысленно и ужасно для пользовательского интерфейса, и многие пользователи, безусловно, в конечном итоге удаляют приложение, обеспокоенное и сбитое с толку.

Я делаю что-то не так? Можно ли передать намерению некоторую подсказку, чтобы открыть представление content Manager ACTION_OPEN_DOCUMENT_TREE непосредственно по определенному пути, доступному во всех хранилищах устройств Android (например, документы), с помощью кнопки «ИСПОЛЬЗОВАТЬ ЭТУ ПАПКУ», доступной при открытии средства выбора?

Комментарии:

1. Единственное, что возможно на Android 10 и 11, — это открытие в external storage: primary partion и external storage: sd card .

2. @blackapps Вы имеете в виду как подсказку Intent.ACTION_OPEN_DOCUMENT_TREE ?

3. Нет. Я просто имею в виду, что если вы используете Intent . ACTION_OPEN_DOCUMENT_TREE вы можете позволить ему открыться в этих двух разделах. Не во вложенных папках или что-то в этом роде.

4. @blackapps Каким образом? Если я вызываю ACTION_OPEN_DOCUMENT_TREE , как показано в вопросе, по умолчанию отображается последний используемый путь (даже не выбираемый), а не корень одного из этих разделов.

5. На данный момент у меня нет кода под рукой. Завтра будет еще один день.