Сохранение файла с использованием платформы доступа к хранилищу в Android

Я интегрирую Document Access Framework с моим облачным хранилищем. Используя эту документацию, я смог получить доступ к файлу и получить его (я просто использую функцию присоединения приложения Gmail, чтобы проверить это).

Теперь я пытаюсь найти, как сохранить файл, используя тот же метод (сохранить файл напрямую через приложение в облачное хранилище), и я сделал следующие изменения:

Для вызова getRoots,

row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE); 

И я также преодолел метод createDocument .

Я не вижу много примеров кода или документации о том, как это сделать. Я также вижу, что в нескольких приложениях, таких как приложение «Фотографии», есть кнопка «Поделиться», в которой используется другой метод (журналы показывают miniShareActivity), и мое приложение не отображается в этом (похоже, что используется другой механизм обмена файлами )

Я ищу информацию о

  1. Как использовать SAF для хранения файла (любой файл-образец будет отличным или указывать на документацию). Я предполагаю, что это позволит пользователю использовать интерфейс выбора, чтобы перейти в папку и сохранить файл.

  2. Как заставить приложение отображаться в списке приложений «Minishare activity» для импорта файла в приложение (похоже, что он не предоставляет интерфейс выбора, но я все равно хочу предоставить поддержку, чтобы файл был сохранен в Местоположение по умолчанию)

Кнопка Share, о которой вы говорите в других приложениях, вероятно, использует ACTION_SEND как действие Intent, а не ACTION_CREATE_DOCUMENT, которое было введено с помощью платформы доступа к хранилищу.

Вероятно, вы захотите поддержать их, поскольку ACTION_CREATE_DOCUMENT был введен только в KitKat, и более старые приложения могут не знать об этом. Аналогично, вы можете также поддержать действие Intent ACTION_GET_CONTENT для доступа на чтение на устройствах pre-KitKat (ACTION_GET_CONTENT обрабатывается SAF при запуске на KitKat +, но ваше приложение по-прежнему должно обрабатывать его при запуске на устройстве pre-KitKat). Являются ли <intent-filter> s в вашем AndroidManifest настроен для соответствия всем этим типам Intent?