FelixL
Ehrenmitglied
- 821
Ich will ACTION_HEADSET_PLUG abfangen.
Erst hab ich's über einen statischen Broadcast-Reciever versucht (also übers xml registriert). Praktischerweise funktioniert dies aber nicht -.-:
[android-developers] Re: Capturing HEADSET_PLUG (android.intent.action.H
Sprich man muss das Ding über den Code anmelden (registerReceiver()).
Damit ich also jeden dieser Events abfange, muss ich nach dem Booten einen Service starten (soweit kein Problem) der dann den Receiver anmeldet, auf sich selbst. Jetzt ist die Frage was passiert wenn der Service beendet wird. Kommen die Events noch an, wird der Service quasi neu gestartet? Oder erzeuge ich einen Fehler? Darauf würde dieser Link hinweisen:
BroadcastReceiver on Service - Android Developers | Google Groups
Wie stelle ich also sicher, das ich die Events alle empfange?
Danke, FelixL
Erst hab ich's über einen statischen Broadcast-Reciever versucht (also übers xml registriert). Praktischerweise funktioniert dies aber nicht -.-:
[android-developers] Re: Capturing HEADSET_PLUG (android.intent.action.H
OK, after digging into the android system code, I think I figured out
what's wrong here... the class "HeadsetObserver" from the base system
actually sends out this intent with its FLAG_RECEIVER_REGISTERED_ONLY
flag set... obviously, there's no way to receive this intent without
implementing a service.
Sprich man muss das Ding über den Code anmelden (registerReceiver()).
Damit ich also jeden dieser Events abfange, muss ich nach dem Booten einen Service starten (soweit kein Problem) der dann den Receiver anmeldet, auf sich selbst. Jetzt ist die Frage was passiert wenn der Service beendet wird. Kommen die Events noch an, wird der Service quasi neu gestartet? Oder erzeuge ich einen Fehler? Darauf würde dieser Link hinweisen:
BroadcastReceiver on Service - Android Developers | Google Groups
I would instead suggest the service just make a BroadcastReceiver inner
class, which it explicitly registers in onCreate() with registerReceiver()
(and unregisterReceiver() in onDestroy() of course).
Wie stelle ich also sicher, das ich die Events alle empfange?
Danke, FelixL