Unterscheiden Sie zwischen Bildschirm-Timeout und Power-Button-Press?

8

Meine App macht etwas, wenn der Bildschirm schwarz wird, aber ich möchte, dass er diese Aufgabe nur ausführt, wenn der Bildschirm "von selbst" ausgeschaltet wurde, und zwar durch eine Bildschirm-Zeitüberschreitung - NICHT wenn der Benutzer die Einschalttaste drückt. Gibt es eine Möglichkeit, zwischen diesen beiden Ereignissen zu unterscheiden?

ACTION_SCREEN_OFF wird offensichtlich in beiden Fällen ausgelöst, und ich habe keine anderen Absichten gefunden, die dem entsprechen, wonach ich suche.

Danke für Ihre Hilfe, Nick

    
Nick 04.05.2010, 19:14
quelle

4 Antworten

4

Auf der unteren Ebene gibt es ein Ereignis, das passiert, wenn der Bildschirm abläuft, schaue mit "adb logcat" und du wirst es sehen, von dort aus graben.

    
berkus 15.05.2010, 11:12
quelle
1

Dienste können Schaltflächenereignisse nicht direkt verarbeiten. Vielleicht können Sie in Ihrer Aktivität einen Broadcast - Empfänger registrieren lassen, um benachrichtigt zu werden, wenn der Bildschirm ausgeschaltet wird, und dann die letzte Taste drücken, um zu sehen, ob es der Einschaltknopf ist - wenn nicht, dann können Sie einen senden Senden Sie es an Ihren Dienst und lassen Sie es laufen, was Sie wollen.

    
Nelz11 22.05.2013 20:34
quelle
1

Das ist eine spaßige Frage :) Obwohl nicht genau, können Sie versuchen, die Zeit seit dem letzten Touch-Ereignis des Benutzers und die Zeit zu pausieren, in der Ihre Aktivität pausiert - und sehen, ob es zu Deaktivierungszeitlimit

    
Sean 22.05.2013 20:53
quelle
0

Können Sie auf ein KEYCODE_POWER Keyboard Event warten? Das könnte tun, was du willst. (Aber die Reihenfolge, in der diese und ACTION_SCREEN_OFF ankommen, ist möglicherweise nicht garantiert).

    
jimrandomh 06.05.2010 02:24
quelle

Tags und Links