Ich muss die Systemschlüsselsperre von Android aktivieren (diejenige, die Sie erhalten, wenn Sie die Taste ausschalten / auflegen drücken). Siehe hier:
Ich habe bereits die Dokumente durchsucht, aber alles, was ich gefunden habe, war PowerManager und KeyguardManager . Beide scheinen nicht die Lösung zu sein: - (.
Also weiß jeder, wie man das von einer Android-Anwendung erreichen kann? (Wenn spezielle Berechtigungen erforderlich sind, ist das kein Problem, aber das Ändern der Geräteeinstellungen ist keine Lösung ...)
BEARBEITEN : Oder weiß jemand, dass das überhaupt nicht möglich ist? Übrigens. Craigs Lösung mit sendenden Schlüsseln funktioniert nicht mehr (siehe Kommentare).
Ich habe eine Zeitlang nach einer Antwort auf genau dieselbe Frage gesucht. Anscheinend wurden nach 2.0 die Berechtigungen des Gerätemanagers für die App-Ebene entfernt. Aber mit Froyo - 2.2 wird der Device Policy Manager enthüllt, der uns Entwicklern eine Vielzahl von administrativen Kontrolllevels gibt.
Sie suchen nach reenableKeyguard () -Methode im KeyguardManager.KeyguardLock mein Freund!
Es sieht so aus, als ob die Bildschirmsperrfunktion mit der folgenden Methode ausgeführt wird:
%Vor% Methode in PowerManager.java
. Es ist möglich, auf diese Weise einen Hinweis darauf zu erhalten:
Dies erfordert jedoch die Erlaubnis
%Vor%ist eine Berechtigung der Ebene 2, die nur für das System verfügbar ist.
Sieht so aus, als ob das nicht machbar ist. Dies ist nur für Version 1.1, ich weiß nicht für 1.5.
Hier gibt es ein ziemlich gutes Beispiel:
Es sieht so aus, als könnten Sie programmgesteuert veranlassen, dass ein Tastenanschlag an das System gesendet wird. Es klingt wie der Keycode, den Sie suchen, ist der KEYCODE_ENDCALL, aber wenn das nicht funktioniert, gibt es viele andere Codes, die Sie hier ausprobieren können:
Ich weiß nicht, ob es einen API-Aufruf gibt, um die Sperre zu verursachen, aber das scheint eine ziemlich robuste Lösung zu sein, bis Sie eine bessere Lösung finden.
Beim Durchsuchen der Android-Quelle wurde WindowManagerService gefunden, das offenbar eine öffentliche Methode ( startAppFreezingScreenLocked
) zur Aktivierung hat. Dies ist ein guter Ort, um nach Ihrer Antwort zu suchen, da es leider nicht so aussieht, als könnten Sie direkt ein WindowManagerService-Objekt erhalten.
Tags und Links java android keyboard locking device-admin