Hey, just curious... How exactly would this work to only override long
press?  Do you then just count the time that the button is held down
and override it on keyup again if it was greater than some time and
send menu event if not?  Or am I missing something?

On Aug 1, 10:07 pm, Mathias Lin <[email protected]> wrote:
> I found the solution, very obvious, but somehow I was always just
> looking at onKeyUp, instead of onKeyDown.
> Overriding onKeyDown works fine.
>
>     @Override
>     public boolean onKeyDown(int keyCode, KeyEvent event) {
>         if (keyCode == KeyEvent.KEYCODE_MENU) {
>             return true;
>         } else return super.onKeyDown(keyCode, event);
>     }
>
> On Jul 27, 11:46 pm, Mathias Lin <[email protected]> wrote:
>
>
>
>
>
>
>
> > Thanks for your reply. Not sure though what you mean with
> > compatibility reasons - in fact all phones handle it differently
> > anyways? Why wouldn't it be wise to allow developers to disable it? I
> > didn't fully get the idea.
>
> > About disabling such functions: there are situations where it makes
> > sense to disable it. In my case I bundle an app with a device that I'm
> > giving to the users. So only my app runs on the device anyway, it
> > starts at boot-time, and I'm in control of the devices (just renting
> > it out to users); still I don't want to root it or modify the core in
> > any way due to guarantee reasons.
> > In my case, I've put specific features on the menu button and the
> > other soft buttons, but I don't want the default behaviour to appear
> > on long press; I'd like to override it with the same app-specific
> > behaviour that I use for a short press on this button (which I can
> > capture via onKeyUp for example).
>
> > Actually I would like to get the behaviour as it is on my G1 (1.6):
> > which is that long press is the same as short press. There's no
> > difference between long press and short press. Not sure if it's due to
> > 1.6 version on it, but I think so.
>
> > But on my Nexus One (2.2) it's different (showing the soft keyboard)
> > and on the Samsung Galaxy S (2.1) as well. Doesn't make much sense to
> > me to have a search widget hidden behind the menu button on long
> > press.
>
> > I understand that the home button shouldn't be able to be overriden in
> > order not to trap users in your app; but why shouldn't the developer
> > be able to handle the menu button/long press?
>
> > On Jul 27, 10:34 pm, Joseph Earl <[email protected]> wrote:
>
> > > I don't think you can.
> > > Pressing and holding the menu button to show the soft keyboard exists
> > > for compatibility reasons - I'm not sure it would be wise to allow
> > > developers to disable it.
>
> > > On Jul 27, 12:18 pm, Mathias Lin <[email protected]> wrote:
>
> > > > How can I capture a long press of the device menu button in my 
> > > > application?
> > > > I thought of an intent filter, but there's only an action called
> > > > android.intent.action.SEARCH_LONG_PRESS, but nothing for the MENU 
> > > > button.
>
> > > > I found that long press of the menu button actually does different
> > > > things on different devices, i.e. on Nexus One it will show the soft
> > > > keyboard, while on Samsung Galaxy S it will pop up the search widget.
> > > > Generally, I want to suppress this behaviour in my app.
>
> > > > (I already looked on StackOverflow.com for some hints but only found
> > > > unanswered posts.)

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to