12

The documentation for KeyEvent.ACTION_MULTIPLE says:

"multiple duplicate key events have occurred in a row, or a complex string is being delivered. If the key code is not {#link KEYCODE_UNKNOWN then the {#link getRepeatCount() method returns the number of times the given key code should be executed. Otherwise, if the key code is KEYCODE_UNKNOWN, then this is a sequence of characters as returned by getCharacters()."

But it doesn't say how to actually generate that event.

  1. I tried (rapidly) double-clicking the headset's Pause/Play button, but all I receive is ordinary ACTION_UP and ACTION_DOWN.
  2. I also tried pressing and holding down the headset's Pause/Play button, but all I receive is ordinary ACTION_UP and ACTION_DOWN.

How do I generate a KeyEvent.ACTION_MULTIPLE (as a user, using a headset control)?

ih8ie8
  • 944
  • 8
  • 23

2 Answers2

3

Android's BaseMovementMethod includes code for handling ACTION_MULTIPLE so presumably the event is generated for key auto-repeat when the user holds down an arrow key.

j__m
  • 9,392
  • 1
  • 32
  • 56
  • Thanks! That's the first answer that actually provide some authoritative reference. I haven't been able to test an arrow key because I don't have one? Where do I find the arrow key on a typical smartphone with a touch screen only? +1 for now (will accept if that's the best answer around). – ih8ie8 May 05 '13 at 20:51
  • 1
    A typical smartphone _doesn't_ have this hardware. A typical smartphone also doesn't have a keyboard, mouse, trackpad, or dpad, to list some of the other input devices Android supports. – j__m May 09 '13 at 13:34
0

I'm not sure, but I would think that ACTION_MULTIPLE would probably be triggered by actual buttons on a blutooth keyboard for instance. I think that the reason you're just getting ACTION_UP and ACTION_DOWN is because those are the pre-defined KeyEvents for your headset controls. I hope this helps. :)

democidist
  • 105
  • 1
  • 6