Задний план
Когда пользователь загружает новое изображение или снимает его с помощью камеры, приложение галереи обновляется, чтобы отображать новые изображения.
Мне нужно получать уведомления о каждом новом изображении, как только оно было создано, независимо от того, как оно было создано (камера, браузер,...), как показывает приложение галереи.
Эта проблема
Как выяснилось, есть компонент Android mediaScanner, который отвечает за сканирование всех типов медиафайлов, и когда он завершится, он должен отправить намерение "MEDIA_SCANNER_FINISHED" (как показано на этот пример).
Поэтому я добавил следующий код, надеясь, что он будет показывать тост каждый раз, когда пользователь делает снимок из приложения камеры:
манифест:
...
<receiver android:name="com.example.newgalleryimagereceivertest.MediaScannerBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_SCANNER_FINISHED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
...
Java-файл:
package com.example.newgalleryimagereceivertest;
...
public class MediaScannerBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
android.util.Log.d("AppLog", "gallery has new images");
}
Почему-то этот код не работает...
Вопрос
Что не так с кодом?
Будет ли когда-нибудь вызываться BroadcastReceiver после съемки фотографии?
Как правильно это сделать?
Мне действительно нужно использовать contentObserver и отслеживать его изменения (используя что-то вроде этого ) и оставить приложение работать только для этого? очень надеюсь что нет...
Log.d("toast", "gallery have new images");
- person Budius   schedule 23.01.2014"android.hardware.action.NEW_PICTURE"
или"com.android.camera.NEW_PICTURE"
- person a.ch.   schedule 28.01.2014