Подтвердить что ты не робот

Android API для обнаружения новых носителей со встроенной камеры и микрофона

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

Мое текущее мышление заключается в периодическом сканировании каждого поставщика медиа-контента и фильтрации на основе последнего времени сканирования.

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

4b9b3361

Ответ 1

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

Intent.ACTION_MEDIA_SCANNER_SCAN_FILE

Трансляция 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).