¿Cómo puedo iniciar una aplicación de Android al pulsar el botón de volumen hacia arriba o hacia abajo?

Tengo un requisito en una aplicación de seguridad personal donde un usuario tiene que iniciar una aplicación tan pronto como sea posible pulsando el botón de volumen hacia arriba o hacia abajo. ¿Cuál es el procedimiento para agregar esta funcionalidad?

No hay ningún evento de difusión para el cambio de volumen.

Sin embargo, hay una acción indocumentada llamada " android.media.VOLUME_CHANGED_ACTION " que puede utilizar, pero probablemente no funcionará en todos los dispositivos / versiones por lo que no se recomienda .

El uso de otros botones (por ejemplo , botones de medios ) sería posible sin embargo.

EDIT: Ejemplo de código (utilizando la acción sin documentar):

AndroidManifest.xml

 ... <receiver android:name="VolumeChangeReceiver" > <intent-filter> <action android:name="android.media.VOLUME_CHANGED_ACTION" /> </intent-filter> </receiver> ... 

VolumeChangeReceiver.java

 public class VolumeChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")) { int newVolume = intent.getIntExtra("android.media.EXTRA_VOLUME_STREAM_VALUE", 0); int oldVolume = intent.getIntExtra("android.media.EXTRA_PREV_VOLUME_STREAM_VALUE", 0); if (newVolume != oldVolume) { Intent i = new Intent(); i.setClass(context, YourActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } } } 

Consulte esta pregunta si desea desbloquear la pantalla al iniciar su aplicación.

He utilizado este código para escuchar el botón de volumen antes,

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){ //Do something } if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)){ //Do something } return true; } 

Este método obtiene eventos de volumen hacia arriba y hacia abajo.

  • ¿Puede una tecla de modificación de Android fallback en una acción?
  • Conseguir que los codificadores QualComm funcionen a través de la API de MediaCodec
  • Camera.PreviewCallback equivalente en Camera2 API
  • Obtenga el modelo de Android Phone mediante programación
  • Recuperar dispositivo Android Fecha de fabricación Programaticamente?
  • Programación de salida HDMI para pantalla dual
  • Instalación de Android en la falla del dispositivo
  • ¿Es posible en Android enviar SMS, correo electrónico y hacer una llamada telefónica al presionar el botón Inicio?
  • Cámara Android android.hardware.Camera obsoleta
  • Valores máximos del acelerómetro Android
  • Deshabilitar claves de hardware android rom
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.