Ответ 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).