Override Power-Taste genau wie die Home-Taste

Nun, ich mache etwas, bei dem ich alle harten Tasten des Geräts deaktivieren möchte.

Tasten wie Power, Home, Lauter, Leiser, Suchen, Zurück.

Ich habe fast alle Tasten erfolgreich überschriebenHier außer Macht.

Ich möchte nur, dass Ihr Leute einige Ideen seht und teilt, damit ich damit durchkomme.

Ich bekomme daslange drücken Power keyevent inonDispatchKeyEvent()Ebenso möchte ich das kurze Klicken desselben fangen. Außerdem habe ich beim Drücken von Power auch versucht aufzuhörenAbblenden durch das bekommenBroadcast vonSCREEN_OFF und es gelang mir, es zu empfangen, aber ich war nicht in der Lage, damit umzugehen.

Vielen Dank.

Dann hatte ich einen ReceiverScreen erstellt, der die Übertragung von Bildschirm ein / aus empfängt

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>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage