Monday, September 17, 2012

Экспорт данных в галерю из Android приложения

Разрабатывая Android приложение, которое так или иначе связано с медиа контентом, может возникнуть задача этот контент экспортировать в стандартную галерею.

Способ номер раз - cтандартный. Используем предназначенное для этих целей API. Пример приводить не буду ибо он слишком тривиальный, чтобы разжевывать. Скажу лишь про недостатки:

  • Экспортировать можно только после того, как мы получили соотв. уведомление, что наш клиент законнекчен.
  • Экспортировать можно только графические файлы(во всяком случае видео закинуть в галерею у меня не получилось)
  • Нужно управлять процессом вручную. Т.е. сценарий выглядит следующим образом: коннектуведомлениеэкспортдисконнект. Понятно, что первое и последнее можно выполнять единожды, а не каждый раз во время экспорта.

Способ номер два - брутальный. Послать уведомление системе, что некая директори(а именно которая содержит экспортируемый файл) была примонтирована.

Данный способ я нашел на StackOverflow. Способ лишен всех недостатков способа один, но в тоже время имеет пару неприятных моментов:

  • Если ваше устройство в качестве основной памяти использует внешнюю SD карту, то с вероятностью 100% вы получите вот такое сообщение об ошибке:
  •  У меня есть подозрение(но не проверял), если директория содержит большое число файлов, то процесс экспорта может несколько затянуться во времени. И часто "бомбить" систему данными уведомлениями, думаю, не есть хорошо.

Способ номер три - мой. Почти тоже самое что и два, но с небольшими изменениями, которые позволяют избежать нам всех перечисленных недостатков:

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

No comments:

Post a Comment