Anular el botón de encendido al igual que el botón de inicio
Bueno, estoy haciendo algo en el que quiero deshabilitar todos los botones duros del dispositivo.
Los botones duros como Encendido, Inicio, Subir volumen, Bajar volumen, Buscar, Atrás.
He anulado con éxito casi todos los botonesaquí excepto el poder.
Así que solo quiero que vean y, por favor, compartan algunas ideas para que me salga con la suya.
Estoy recibiendo elpulsación larga Evento clave en el poderonDispatchKeyEvent()
De la misma manera quiero atrapar el clic corto de la misma. Además al presionar el poder también intenté parar.Pantalla apagada obteniendo elBroadcast
deSCREEN_OFF
y logré recibirlo pero no pude manejarlo.
Gracias.
Luego, había creado una ReceiverScreen que recibe la transmisión de la pantalla de encendido / apagado
ReceiverScreen.java
<code>public class ReceiverScreen extends BroadcastReceiver { public static boolean wasScreenOn = true; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { // do whatever you need to do here wasScreenOn = false; } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { // and do whatever you need to do here wasScreenOn = true; } } } </code>
DisableHardButton.java
<code>public class DisableHardButton extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); BroadcastReceiver mReceiver = new ReceiverScreen(); registerReceiver(mReceiver, filter); } @Override protected void onPause() { // when the screen is about to turn off if (ScreenReceiver.wasScreenOn) { // this is the case when onPause() is called by the system due to a screen state change System.out.println("SCREEN TURNED OFF"); } else { // this is when onPause() is called when the screen state has not changed } super.onPause(); } @Override protected void onResume() { // only when screen turns on if (!ScreenReceiver.wasScreenOn) { // this is when onResume() is called due to a screen state change System.out.println("SCREEN TURNED ON"); } else { // this is when onResume() is called when the screen state has not changed } super.onResume(); } } </code>