Предложить загрузку переднего плана пользователю с возможным диалогом
Я борюсь с дизайном юзабилити.
Пусть есть приложение, которое имеет только одно разрешение, android.permission.INTERNET
.
Я хочу загрузить изображение с удаленного URL (где я не могу контролировать серверную), но загрузите его, чтобы пользователь мог выбрать, будет ли и где скачать этот файл.
Отображение диалога для утверждения процесса и/или выбора конечного адресата.
Я рассмотрел эти решения:
- DownloadManager с помощью
setDestinationInExternalPublicDir
- Две ошибки, я не хочу добавлять разрешения
WRITE_EXTERNAL_STORAGE
, и пользователь не может решить, загружаться или нет.
- Использование
Intent.ACTION_VIEW
для запуска браузера
- standalone будет отображать изображение пользователю, но не запускать загрузку автоматически
- Использование
Intent.ACTION_VIEW
и пользовательского прокси script
- Сервер не мой, и я не хочу, чтобы обеспечить загрузку прокси-сервера на стороне сервера script
- Замена HTTP (S) для FTP и разрешение пользователю
- Не работает, поскольку изображения на этом сервере недоступны через FTP
- Совместимость с Providin для приложений загрузки (таких как "Загрузка всех файлов", различные "Менеджеры файлов",...)
Как добиться этого без расширения текущих разрешений или зависеть от нестандартного приложения?
Связано с этой проблемой github https://github.com/smarek/Simple-Dilbert/issues/1
Ответы
Ответ 1
Ваше приложение загружает файлы и потенциально записывает их во внешнее хранилище. Я чувствую, что вы должны запрашивать разрешение WRITE_EXTERNAL_STORAGE (что также подразумевает READ_EXTERNAL_STORAGE), чтобы точно представлять, что делает ваше приложение.
Тогда ваше первое решение работает. Перед вызовом загрузки вам просто нужен способ запроса пользователя. Или иначе принимайте активное участие в процессе работы.