2016-10-05 2 views
-3

Ich möchte diese Nachricht ändern "Ihr Telefon ist heruntergefahren", die beim Herunterfahren des Geräts angezeigt werden. enter image description hereHandle Alert beim Herunterfahren von Gerät Android in gerootete App

Haben Sie irgendwelche Ideen?

Meine App Videos im Hintergrund herunterladen, muss ich Sie warnen, das Gerät nicht abzuschalten, wenn der Download noch nicht abgeschlossen ist, zum Beispiel wenn Sie Windows herunterfahren und Updates herunterladen.

+1

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

+0

Ich bearbeite die Frage –

+2

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

Antwort

1

Adriana werfen Sie einen Blick auf Intent.ACTION_SHUTDOWN, ich bin mir nicht sicher, ob Sie damit umgehen können, wie Sie wollen.

Zusätzlich dazu ist dieser post damit verwandt.

0

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); 
} 
Verwandte Themen