In AndroidManifest.xml:
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
<uses-permission android:name="android.permission.DEVICE_POWER"
tools:ignore="ProtectedPermissions" />
MainActivity.java abfangen ich den Netzschalter ausgeschaltet und in der Nähe Systemdialog erzwingen und eine Ansicht benutzerdefinierte darüber
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER) {
// Do something here...
event.startTracking(); // Needed to track long presses
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
mViewCustom.setVisibility(View.VISIBLE);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER) {
return true;
}
return super.onKeyLongPress(keyCode, event);
}
Es ist ein Systemdialog so ausgelöst erstellen, wir können es möglicherweise nicht ändern. Würde es Ihnen etwas ausmachen zu erklären, warum dieser Anwendungsfall entstanden ist? – Shaishav
Ich bearbeite die Frage –
Ja, es ist keine nette UX diese Dialoge zu ändern (auch wenn überhaupt möglich). Für Ihren Anwendungsfall müssen Sie diese manuell behandeln. [Diese SO Frage] (http://stackoverflow.com/questions/10448304/handling-phone-shutdown-event-in-android) sollte Ihnen dabei helfen. – Shaishav