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
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.
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
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).
Tags und Links android android-intent