Android: escucha de las teclas duras en el fondo
Android proporciona algunos métodos de devolución de llamada que nos ayudan a manejar eventos clave dentro de las aplicaciones. ¿Pero qué sucede si quiero escuchar los eventos clave cuando mi aplicación se ejecuta en segundo plano? P.ej. Quiero escuchar para el evento de prensa largo en el botón de búsqueda para hacer una característica especial.
- Android: escucha la tecla de encendido
- Keyevent android teléfono bloqueado
- Android: ¿Hay una manera de simular D-Pad Events (API 10)?
- Eventos clave en TabActivities?
- ¿Es posible crear un servicio Android que escuche las pulsaciones de teclas de hardware?
- Escuchar Webview Key Events desde el teclado del software en la actividad de Android
- Teclas especiales KeyEvent (como silenciar)
- DispatchKeyEvent desde Service
- No se puede capturar el evento del botón Volver de Android
- Iniciar chat de vídeo sin interacción del usuario - Android
- Enviar una consulta cuando haga clic en el botón de búsqueda en el teclado
- Android onkey - dispatchKeyEvent sin disparar
- Simulación de combinación de pulsadores de teclas del terminal ADB
KeyEvents sólo puede ser manejado por Actividades, ya que son la interfaz para el usuario pulsando las teclas y sólo cuando están en primer plano. Incluso los servicios que se ejecutan en segundo plano no tienen la intención de reaccionar en la entrada del usuario.
Pero al utilizar un servicio puede tener una solución. Puede crear un servicio que responda a eventos de pulsación de tecla duros al registrar un BroadcastReceiver. Por ejemplo, en la aplicación de música AOSP, tienen un servicio ( MediaPlaybackService ) que responde a eventos de clave de volumen al registrar un BroadcastReceiver ( MediaButtonIntentReceiver ).
Aquí está el código donde registra el receptor:
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); ComponentName rec = new ComponentName(getPackageName(), MediaButtonIntentReceiver.class.getName()); mAudioManager.registerMediaButtonEventReceiver(rec);
Esto funciona incluso si la aplicación Música no está en primer plano. Código de fragmento de esta respuesta.
- Android: pestañas en la parte inferior con FragmentTabHost
- ¿Qué significa "si el dispositivo está conectado a GCM"