Ich versuche eine App zu erstellen, die erkennt, wenn ein Benutzer ein Foto macht. Ich habe eine Rundfunkempfänger Klasse und registriert es in der Manifest-Datei durch:Broadcast-Empfänger wird kein Kameraereignis empfangen
<receiver android:name="photoReceiver" >
<intent-filter>
<action android:name="com.android.camera.NEW_PICTURE"/>
<data android:mimeType="image/*"/>
</intent-filter>
</receiver>
Egal, was ich versuche, das Programm zu tun, wird nicht die Sendung erhalten. Hier ist mein Empfänger Klasse:
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();
}
}
Wenn ich die mime Linie im Manifest und in meiner Tätigkeit entfernen sende ich meine eigene Sendung mit
Intent intent = new Intent("com.android.camera.NEW_PICTURE");
sendBroadcast(intent);
dann erfolgreich ich die Sendung empfangen und das Protokoll sehen und Toast-Fenster. Komme ich dem richtig zu? Gibt es etwas, das ich hinzufügen muss?
Woher hast du 'com.android.camera.NEW_PICTURE'? Von dem, was ich nach einem kurzen Blick auf die SDK sagen kann, existiert diese Aktion nicht. – techiServices
@sugarynugs Ich fand es auf einigen anderen Threads. Hier ist einer von ihnen, anscheinend von der Quelle der Kamera. stackoverflow.com/questions/3015448/..., wenn ein Bild aufgenommen wird, ruft es sendBroadcast auf (neue Absicht ("com.android.camera.NEW_PICTURE", mLastContentUri)); – John
Welche Version von Android testen Sie dies? – techiServices