Разрабатывая Android приложение, которое так или иначе связано с медиа контентом, может возникнуть задача этот контент экспортировать в стандартную галерею.
Способ номер раз - cтандартный. Используем предназначенное для этих целей API. Пример приводить не буду ибо он слишком тривиальный, чтобы разжевывать. Скажу лишь про недостатки:
- Экспортировать можно только после того, как мы получили соотв. уведомление, что наш клиент законнекчен.
- Экспортировать можно только графические файлы(во всяком случае видео закинуть в галерею у меня не получилось)
- Нужно управлять процессом вручную. Т.е. сценарий выглядит следующим образом: коннект ⇒ уведомление ⇒ экспорт ⇒ дисконнект. Понятно, что первое и последнее можно выполнять единожды, а не каждый раз во время экспорта.
Способ номер два - брутальный. Послать уведомление системе, что некая директори(а именно которая содержит экспортируемый файл) была примонтирована.
Данный способ я нашел на StackOverflow. Способ лишен всех недостатков способа один, но в тоже время имеет пару неприятных моментов:
- Если ваше устройство в качестве основной памяти использует внешнюю SD карту, то с вероятностью 100% вы получите вот такое сообщение об ошибке:
- У меня есть подозрение(но не проверял), если директория содержит большое число файлов, то процесс экспорта может несколько затянуться во времени. И часто "бомбить" систему данными уведомлениями, думаю, не есть хорошо.
Способ номер три - мой. Почти тоже самое что и два, но с небольшими изменениями, которые позволяют избежать нам всех перечисленных недостатков:
Изменен лишь action и вмето директории мы передеам абсолютный путь к файлу, тем самым обновляем лишь один ресурс, а не пачку. Данный способ позволяет экспортировать как видео так и графические файлы.
No comments:
Post a Comment