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>

Respuestas a la pregunta(6)

Su respuesta a la pregunta