Существует специальное широковещательное намерение, которое должно вызываться каждый раз, когда приложение записывает что-то новое в 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) приложения.