Lo que básicamente intento lograr son teclas de acceso rápido globales personalizadas o, en otras palabras, 'sucederán cosas cuando presiono ciertos botones, sin importar qué programa esté actualmente en la parte superior'.
Supongo que se necesita un servicio.onKeyDown en un servicio? (Global Hot Keys)
Tengo una prueba rápida y sucia que simplemente me dice qué se ha presionado que funcionará si es la ventana activa.
public boolean onKeyDown(int keyCode, KeyEvent event) {
char pop;
pop = (char)event.getUnicodeChar();
Toast.makeText(this, Character.toString(pop) , Toast.LENGTH_SHORT).show();
return super.onKeyDown(keyCode, event);
}
Pero obviamente, si cambio de ventana o entro en un cuadro de texto, no funciona. Si lo incluyo directamente en un servicio (o un servicio de imputmethod) y lo ejecuto, no ocurre nada. (Algunos permisos necesarios tal vez?) ¿Alguna sugerencia de dónde me estoy equivocando? ¿O una mejor forma de capturar qué botón se presiona?
Gracias!
hiii si tienes alguna solución para esto entonces por favor déjame saber. –
@Vincent Romain Guy trabaja en el equipo de Android, dijo que esto es [imposible] (http://stackoverflow.com/a/3455094/942821). Y Fizz, ¿podrías aceptar la respuesta de Romain? –
posible duplicado de [¿Es posible crear un servicio de Android que escuche las pulsaciones de teclas de hardware?] (Http://stackoverflow.com/questions/2986337/is-it-possible-to-create-an-android-service- that-listens-for-hardware-key-presse) – isalgueiro