широковещательный приемник не получает событие камеры

Я пытаюсь создать приложение, которое определяет, когда пользователь делает фотографию. Я установил класс широковещательного приемника и зарегистрировал его в файле манифеста:

<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);

, то я успешно получу трансляцию и могу увидеть окно журнала и всплывающего сообщения. Правильно ли я подхожу к этому? Есть ли что-нибудь, что мне нужно добавить?

20
задан Cœur 26 April 2017 в 16:12
поделиться