I m trying to implement an input method service that receives intents sent by a remote client, and in response to those sends an appropriate KeyEvent.
I m using in the input method service
this method
private void keyDownUp(int keyEventCode)
{
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}
to send KeyEvents
as in the Simple Sofykeyboard Sample
, and it works in the home, in Activities.
.. but it doesn t works when a Dialog or the menu of a Spinner is in foreground.
The events is sent to the parent activity behind the Dialog
.
Is there any way to send keys and control the device like using the hardware keys from an input method?
Better explanation on what I m trying to do:
I am kind of writng an Input Method that allows to control the device from remote.
I write in a client (a java application on my desktop pc) a command (for example "UP"), a server on the device with sendBroadcast()
sends the intent with the information, and a receiver in the input method gets it and call keyDownUp with the keycode
of the DPAD_UP key.
It generally works, but when I go to an app that shows a dialog, the keyDownUp
method don t sends the key event to the dialog
, for example for select the yes or not buttons, but it keeps to control the activty
behind the Dialog
.
Here I have found someone with my same problem... but no answer...