#android #flutter #dart #storage-access-framework
#Android #flutter #dart #хранилище-доступ-фреймворк
Вопрос:
Я пытаюсь написать приложение для блокнота с использованием Flutter, которое сохранит все заметки в выбранной пользователем папке.
Чтобы его можно было синхронизировать с помощью чего-то вроде Syncthing.
Похоже, что начиная с Android 10, это невозможно с помощью обычного файлового API в Dart.
Есть ли какой-либо способ получить доступ к новому SAF API из Dart?
Комментарии:
1. Если вы позволите пользователю выбрать папку, вы получите uri SAF. И я полагаю, что вы получили это уже с Android Kitkat. Итак, вам уже давно приходилось использовать SAF.
2. Далее: с помощью второстепенного атрибута тега в файле манифеста вы можете позволить своему приложению на устройстве Android 10 вести себя как раньше.
3. @blackapps да. Я видел, что он был там некоторое время. Я новичок в разработке приложений. Я начал с flutter несколько недель назад. Я искал способ правильной записи файла на SD-карту. Только что наткнулся на API SAF, но не смог понять, как его использовать из Flutter.
4. может кто-нибудь предложить зависимость для получения uri SAF в flutter?
5. @Sparks Вы нашли какую-либо соответствующую зависимость от SAF?
Ответ №1:
После изменения политики безопасности для Android 9 или выше. Для получения доступа к хранилищу (basic) рекомендуется использовать опцию API платформы доступа к хранилищу (SAF).
Вы можете просто выполнить эту задачу, используя пакет flutter под названием saf. Вы можете выполнить поиск в www.pub.dev каталог пакетов.
По сути, он предоставляет вам всю встроенную реализацию API платформы доступа к хранилищу на стороне dart. Он открывает собственный проводник файлов ОС, после чего пользователь может предоставить разрешение на любой конкретный каталог и получить доступ для выполнения некоторых операций над ним.
Комментарии:
1. Вот ссылка на пакет: saf
2. Искал эту функциональность почти месяц, но безуспешно, и, наконец, это спасло мне жизнь! Еще раз спасибо 🙂