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>