On Thu, Apr 2, 2009 at 6:19 AM, Henning Schaefer <henning.schae...@gmail.com > wrote:
> > Sure... you need to implement two classes. One, derived from > BroadcastReceiver, which actually captures the broadcast. And, of > course, the service that keeps the receiver alive all the time. The > service is the easy part. You only need to override two methods: > > @Override > public void onCreate() { > /* register receiver */ > apr = new APReceiver(); /* replace this by your receiver class > */ > IntentFilter inf = new IntentFilter(); > inf.addAction("android.intent.action.HEADSET_PLUG"); > registerReceiver(apr, inf); > } > > @Override > public void onDestroy() { > unregisterReceiver(apr); > } > > Of course, apr (type of your receiver class) must be a private field > of your service class. > > Then, you derive your receiver class from BroadcastReceiver and fill > in the onReceive method: > > public void onReceive(Context context, Intent intent) { > if (intent.getExtras().getInt("state") == 0) { > /* HEADSET IS OR HAS BEEN DISCONNECTED */ > }else{ > /* HEADSET IS OR HAS BEEN CONNECTED */ > } > } > > However, you need to be aware that HEADSET_PLUG is a "sticky" event, > every BroadcastReceiver subscribed to that event will receive it upon > construction; I don't know if there is a possibility to determine if > the event has captured at the exact time or been "sticked" for a > while. > > Hi, Thanks for detail regarding HEADSET detection but before this what need to do so detection come to MMI from driver ? is that required to post specific event from driver once driver detect headset plug-in or plug-out ? Can you please give more details on this starting from driver , how to enable headset detection in Android UI ? ( My headset driver is working and can detect plug-in and plug-out ). > I hope, this short excerpt helps ;) > > On 26 Mrz., 18:37, Gerby <stephan.gerb...@googlemail.com> wrote: > > hi henning > > > > do you have some example code for me, how to create a service to > > detect the headset, please? > > > > Cheers > > > > On 16 Feb., 17:21, zero <zeroo...@googlemail.com> wrote: > > > > > on a side note, i recommend the logcat app for such momentshttp:// > code.google.com/p/android-random/ > > > > > On Feb 16, 5:04 pm, Henning Schaefer <henning.schae...@gmail.com> > > > wrote: > > > > > > 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. > > > > > > On 15 Feb., 12:59, Henning Schaefer <henning.schae...@gmail.com> > > > > wrote: > > > > > > > Hi all, > > > > > > > yesterday, I spent several hours trying to figure out how to > capture > > > > > the HEADSET_PLUG intent with a BroadcastReceiver. The manifest > defines > > > > > the <receiver>, with its intent-filter set to <action > > > > > android:name="android.intent.action.HEADSET_PLUG" />. > > > > > > > The receiver is working correctly (I verified that by changing the > > > > > intent filter to capture things like SMS_RECEIVED including the > proper > > > > > permissions and the receiver fired as expected on receiving an > SMS), > > > > > but when listening for HEADSET_PLUG, it never fires. Debugging the > > > > > whole thing is a bit complicated, as the emulator doesn't seem to > > > > > support headsets and I have to disconnect my target device (a HTC > > > > > Dream) from USB in order to attach a headset (so there's no logfile > > > > > viewing). Are there any special permissions required for > applications > > > > > to capture the HEADSET_PLUG intent (and if so, which? I've tried > > > > > several, to no avail)? > > > > > > > Maybe the Dream doesn't fire such an intent at all (that'd be bad > luck > > > > > for me), but I guess that it must be an issue related to > application > > > > > permissions. The documentation says extremely little (well, > actually: > > > > > nothing) about the single permissions needed to perform all the > > > > > actions described in the API docs, so this is absolutely something > to > > > > > be improved. > > > > > > > What I want to do: Upon detecting a headset, I want to re-route the > > > > > ringtones from the speakers to the headset, so as not to annoy > people > > > > > in my vicinity by a harsh ringing sound (I'm used to this behaviour > > > > > from my old phone) - by default, the speaker just keeps on ringing, > no > > > > > matter whether a headset is attached or not. This part is already > > > > > working, but now I need to know how to detect headset attachment/ > > > > > detachment events. > > > > > > > Thanks in advance, > > > > > > > Henning > --~--~---------~--~----~------------~-------~--~----~ > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers-unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -~----------~----~----~----~------~----~------~--~--- > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en