Android API для обнаружения новых медиа со встроенной камеры и микрофона - PullRequest
18 голосов
/ 23 октября 2008

Есть ли в Android API какой-либо изящный способ обнаружения нового носителя при его записи на устройство? В основном меня интересуют фотографии, сделанные камерой, видео, снятое камерой, и звук, записанный с микрофона.

В настоящее время я думаю о том, чтобы периодически сканировать каждого поставщика медиа-контента и фильтровать его по времени последнего сканирования.

Мне просто интересно, есть ли какая-нибудь услуга, по которой я могу получать уведомления в реальном времени.

Ответы [ 2 ]

10 голосов
/ 25 октября 2008

Существует специальное широковещательное намерение, которое должно вызываться каждый раз, когда приложение записывает что-то новое в Media Store:

Intent.ACTION_MEDIA_SCANNER_SCAN_FILE

Broadcast Intent включает путь к новому файлу, доступный с помощью метода Intent.getDataString().

Чтобы прослушать его, просто создайте BroadcastReceiver и зарегистрируйте его, используя IntentFilter, как показано ниже:

registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
      String newFileURL = intent.getDataString();
      // TODO React to new Media here.  
    }    
  }, new IntentFilter(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE));

Это будет работать только для файлов, вставляемых в одного из провайдеров контента магазина мультимедиа. Кроме того, это зависит от приложения, которое отправляет его туда, и передает намерение, которое делают все нативные (Google) приложения.

3 голосов
/ 24 октября 2008
...