studio programacion para móviles español edición desarrollo desarrollar curso aprende aplicaciones java android key keypress simulate

java - programacion - Android simula una pulsación de tecla



manual programacion android español pdf (3)

¿Cómo puedo simular mediante programación una pulsación de tecla en un Droid? Me gustaría imitar una pulsación manual de teclas (aparece en el droide que alguien está presionando una tecla pero se está haciendo mediante programación).

Hay soluciones por ahí que involucran a IWindowManager , pero eso ya no es una opción en el nuevo SDK.


Puede usar la instrumentación, es decir, si sigue el código llamado desde onCreate de su actividad, el menú se abrirá y cerrará varias veces:

new Thread(new Runnable() { @Override public void run() { try { Instrumentation inst = new Instrumentation(); for ( int i = 0; i < 10; ++i ) { inst.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU); Thread.sleep(2000); inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK); Thread.sleep(2000); } } catch(InterruptedException e){ } } }).start();

... pero no estoy seguro si esto es lo que buscas


Si tiene una vista que desea consumir el evento, puede usar la clase BaseInputConnection y su método sendKeyEvent .

Para usarlo, deberá especificar una vista de destino (por ejemplo, un texto de edición) que recibirá el KeyEvent. Por ejemplo:

EditText editText; BaseInputConnection inputConnection = new BaseInputConnection(editText, true); inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_POUND));

El resultado de esto es como si el usuario realmente presionara la tecla # (mientras se enfoca el texto de edición).


También puede utilizar input text , es decir:

Desde la computadora a través de adb :

adb shell input text ''example//@email.com''

De la shell :

input text ''example//@email.com''