Я пытаюсь создать приложение, которое обнаруживает, когда пользователь делает снимок. Я создал класс широковещательного приемника и не зарегистрировал его в файле манифеста по:радиовещательный приемник не принимает событие камеры
<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, этого действия не существует. – techiServices
@sugarynugs Я нашел его на некоторых других потоках. Вот один из них, по-видимому, от источника камеры. stackoverflow.com/questions/3015448/..., когда снимок сделан, он вызывает sendBroadcast (новый Intent («com.android.camera.NEW_PICTURE», mLastContentUri)); – John
какую версию Android вы тестируете? – techiServices