Я пытаюсь создать приложение, которое определяет, когда пользователь делает снимок. Я установил класс широковещательного приемника и зарегистрировал его в файле манифеста:
<receiver android:name="photoReceiver" >
<intent-filter>
<action android:name="com.android.camera.NEW_PICTURE"/>
<data android:mimeType="image/*"/>
</intent-filter>
</receiver>
Что бы я ни делал, программа не принимает трансляцию. Вот мой класс приемника:
public class photoReceiver extends BroadcastReceiver {
private static final String TAG = "photoReceiver";
@Override
public void onReceive(Context context, Intent intent) {
CharSequence text = "caught it";
int duration = Toast.LENGTH_LONG;
Log.d(TAG, "Received new photo");
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
Если я удалю строку mimeType в манифесте и в своей деятельности, я отправлю свою собственную трансляцию, используя
Intent intent = new Intent("com.android.camera.NEW_PICTURE");
sendBroadcast(intent);
тогда я успешно получаю трансляцию и вижу окно журнала и тоста. Правильно ли я к этому подхожу? Есть что-нибудь, что мне нужно добавить?
com.android.camera.NEW_PICTURE
? Из того, что я могу сказать после беглого просмотра sdk, этого действия не существует. - person techiServices   schedule 31.12.2010