2012-08-14 5 views
44

Ich habe eine Anwendung geschrieben, die Android-Handy remote sperrt. Das ist, wenn ein spezieller Code vom Server gesendet wird, dann sperrt die Anwendung das Telefon basierend auf dem speziellen Code. Dies ist der Code, den ich verwende.So entsperren Android-Handy durch Code aus der Ferne

if (!mDPM.isAdminActive(mDeviceAdminSample)) { 
     // try to become active – must happen here in this activity, to get result 
     Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
     intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample); 
     intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"Admin is added to do security operation."); 
     startActivityForResult(intent, 0); 
     } else { 
     // Already is a device administrator, can do security operations now. 
     mDPM.lockNow(); 
     } 

Der obige Code funktioniert und es schließt das Telefon.

Ich kann das Telefon entsperren, indem ich das Passwort über die Soft-Tastatur eingegeben habe. Gibt es eine Möglichkeit, es durch Code zu entsperren?

Meine Frage ist, wie das Telefon durch den Code zu entsperren (Diese Entriegelung sollte der Ferne in der Weise erfolgen ich zur Verriegelung erklärt)

+0

Was ist min API und hast du die uses-permission in deinem mainManifest hinzugefügt? –

Antwort

1

Bitte beachten Sie, dass ich bin kein Android-Entwickler, aber:.

Wenn Sie sich this ansehen, können Sie den WindowManager bitten, den Schlüsselwächter zu schließen, wenn Sie die richtige Berechtigung haben, selbst wenn Sie sich im "sicheren Sperrmodus" befinden.

+0

Nein, es wird nicht funktionieren, da ich das Passwort zum Sperren verwende – kehnar

+0

Hast du es versucht? – HonkyTonk

+0

ja ich habe überprüft. – kehnar

2

versuchen, diese

KeyguardManager manager = (KeyguardManager)context.getSystemService(KEYGUARD_SERVICE); 
kl = manager.newKeyguardLock("my-remote-app"); 
kl.disableKeyguard(); 

// für Neuaktivieren Tastensperre an der Ausfahrt (wenn Sie benötigen)

onDestroy() { 
kl.reenableKeyguard(); 
} 

das funktioniert < = ICS. Dies ist eine veraltete API, sie haben vorgeschlagen, dass Sie die Flags von WindowManager für ähnliche Effekte verwenden. Obwohl ich den ähnlichen Effekt mit dem WindowManger nicht erzeugen konnte.

Hoffe, dass dies hilft,

+0

Bereits überprüft. Es funktioniert nicht. – kehnar

+0

Ich habe es in GNote N7000 mit ICS verwendet und es funktioniert. Hast du die zusätzliche Erlaubnis gegeben, den KeyguardManager zu benutzen? Andernfalls könnte Ihre Absicht aufgrund von SecurityException beendet werden. – fadedreamz

+0

Sie können auch das NEW_TASK-Flag hinzufügen, wenn Sie die Entsperrungsabsicht erstellen. – fadedreamz

5

Ich glaube nicht, dass Ihre Remote entsperren Ziel erreichbar ist.

Die Art und Weise, wie Android eingerichtet ist, besteht darin, dass viele Apps über Geräteadministratorrechte verfügen und jeder Geräteadministrator einen Sperrbefehl erteilen kann, aber das Entsperren muss vom Benutzer erfolgen.

Ich kann Ihnen eine Sache vorschlagen, um dies zu vereinfachen: Ihre App könnte versuchen, das Schlüsselsperrpasswort zu entfernen, und dann kann der Benutzer das Gerät ohne einen Code verwenden, indem er einfach einen Finger auf den Bildschirm legt.

Jetzt gibt es einen Haken in dem, was ich vorgeschlagen habe, wenn Ihre App nicht der einzige Geräteadministrator ist. In diesem Fall könnte eine andere Administrator-App eine Mindestkennwortlänge (oder eine andere Kennwortbeschränkung) festlegen, die verhindern würde, dass die App das Kennwort für die Bildschirmsperre löscht.

Wenn Sie einem Benutzer helfen möchten, der sein/ihr Bildschirmsperrpasswort vergessen hat, könnte Ihr Server ein neues Passwort erfinden, den Benutzer über das neue Passwort informieren und das neue Passwort an Ihre App und Ihr Passwort senden App könnte das Passwort anwenden. Der Benutzer kann dann das Telefon entsperren. Mach dir keine Sorgen, es ist nicht so kompliziert wie es klingt.

4

Entschuldigung, dass - Es gibt keine Möglichkeit, Telefon aus Code zu entsperren. Wenn Sie einen Weg finden, dies zu tun - keine Garantie für die Arbeit. So gibt es keine Möglichkeit zum Remote-Entsperren, Schreiben von benutzerdefinierten Sperrbildschirmen usw.

1

Meines Wissens können wir Passwort-geschütztes Telefon nicht programmatisch entsperren.

+7

Sie haben nicht einmal einen Namen. – Shark

6

Ich glaube, Sie können die integrierte Bildschirmsperre nicht außer Kraft setzen, wenn Sie Ihr eigenes Gerät wie Samsung und HTC tun.Wenn Sie jedoch Ihre eigene Bildschirmsperre-ähnliche App verwenden, können Sie wahrscheinlich erreichen, was Sie zu tun versuchen.

0

Eine Lösung wäre, einen "benutzerdefinierten Lockscreen" zu schreiben. Sicher, es ist nicht der einfachste Weg, aber es würde funktionieren, wie Sie alles mit Ihrem eigenen Lockscreen tun können. Wenn Sie diese Lösung in Betracht ziehen, zögern Sie nicht, mich zu kontaktieren, ich gebe Ihnen einige nützliche Links. Prost!

+0

Android unterstützt keine Bildschirme zur Kostümsperre. –

+0

@Ilya_Gazman Es unterstützt es fast, aber nicht mit einer offiziellen API. Um einen benutzerdefinierten Sperrbildschirm zu erhalten, muss Ihre App der Standardstartprogramm sein. Hier sind einige Beispiel-Apps: http://www.androidauthority.com/best-music-player-apps-for-android-208990/ https://www.androidpit.com/best-android-lock-screen-apps –

+0

@androiddeveloper Ich schätze, in 4 Jahren kann viel passieren. lol –

Verwandte Themen