Setzen Sie den Lockscreen auf "None" programmgesteuert ein?

Ich habe die Anforderung, den Sperrbildschirm zu deaktivieren und den Sperrbildschirm auf "Keine" zu setzen. Mein Gerät ist verwurzelt (kann mit SU-Berechtigung laufen) + kann als Systemanwendung mit Systemberechtigungen (unter / System / App) laufen.

Ich habe ein paar Sachen ausprobiert.

Versuche 1

Das scheint veraltet zu sein und nicht zu arbeiten.

KeyguardManager manager = (KeyguardManager) this.getSystemService(KEYGUARD_SERVICE); KeyguardLock lock = manager.newKeyguardLock("abc"); lock.disableKeyguard(); 

Versuche 2

Das hat auch nicht geklappt

  1. Mount-System-Partition als beschreibbar
  2. Bearbeiten Sie /data/data/com.android.providers.settings/databases/settings.db
  3. Führen Sie das folgende SQL aus.

    INSERT OR REPLACE INTO system (name, value) VALUES ('lockscreen.disabled', '1');
    INSERT OR REPLACE INTO secure (name, value) VALUES ('lockscreen.disabled', '1');

Versuche 3

Reboot die Maschine aber noch kein Glück.

 android.provider.Settings.Secure.putLong(mContentResolver, Settings.Secure.LOCK_PATTERN_ENABLED, false);` android.provider.Settings.Secure.putLong(mContentResolver, "lockscreen.password_type", DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);` android.provider.Settings.Secure.putLong(mContentResolver, "lockscreen.password_type_alternate", DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); android.provider.Settings.Secure.putLong(mContentResolver, "lockscreen.disabled", true); 

Gibt es noch etwas, das ich ausprobieren kann?

Bitte beachten Sie, dass ich die Keyguard nicht nur deaktivieren möchte, wenn die Anwendung läuft.

6 Solutions collect form web for “Setzen Sie den Lockscreen auf "None" programmgesteuert ein?”

Du kannst das versuchen:

 adb shell sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '1' WHERE name = 'lockscreen.disabled'" adb shell sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '0' WHERE name = 'lockscreen.password_type'" adb shell sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '0' WHERE name = 'lockscreen.password_type_alternate'" 

Es funktioniert auf meinem verwurzelten Nexus 4.

Nach der Suche ein bisschen in der Android- Quelle onPreferenceTreeClick ich jetzt in einer Funktion namens onPreferenceTreeClick aus der Klasse ChooseLockGeneric die aufgerufen werden soll, wenn die Unlock-Methode gewählt wird (in den Einstellungen).

In dieser Methode wird updateUnlockMethodAndFinish aufgerufen, der die Unlock-Methode setzt. Vielleicht rufen Sie updateUnlockMethodAndFinish(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED,true); Könnte genau das sein, was du willst.

Ich weiß nicht, ob dies Ihren Bedürfnissen entspricht und nicht weiß, ob das funktioniert (vielleicht gibt es irgendwelche Sichtprobleme oder Sicherheitsmechanismen). Ich spekuliere nur.

EDIT: Dies könnte auch helfen: startFragment(this,"com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",SET_OR_CHANGE_LOCK_METHOD_REQUEST, null);

Ich habe versucht, /data/system/locksettings.db zu modifizieren, wie es von @ByteHamster vorgeschlagen wurde, ohne Glück.

 adb shell sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '1' WHERE name = 'lockscreen.disabled'" 

Ich habe dann die locksettings.db zu locksettings.db.old und neu gestartet. Der Lockscreen war weg und Android hat die Datei locksettings.db wieder aufgebaut.

Ich verwende TWRP Recovery auf einem Samsung Galaxy S4.

Sie müssen diese Verwendungserlaubnis auf AndroidManifest erklären:

 <uses-permission android:name="android.permission.WAKE_LOCK" /> 

Und in deinem Code:

 PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock"); wakeLock.acquire(); 

Wenn Ihre Anwendung zerstört oder pausiert, um diese Sperre mit unten zu lösen:

 wakeLock.release(); 

Ich habe vorgeschlagen, den Erwerb in der onResume () Ihrer Aktivität und die Freigabe in onPause () aufzurufen .

Ich möchte exilit Antwort erforschen. Von der Quelle kommen wir endlich dazu:

 mChooseLockSettingsHelper.utils().clearLock(false); mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled); 

Das utils ist das com.android.internal.widget.LockPatternUtils Objekt und wir können es irgendwie durch Reflexion bekommen. Hier ist der Code:

  try{ Class lockPatternUtilsCls = Class.forName("com.android.internal.widget.LockPatternUtils"); Constructor lockPatternUtilsConstructor = lockPatternUtilsCls.getConstructor(new Class[]{Context.class}); Object lockPatternUtils = lockPatternUtilsConstructor.newInstance(MyActivity.this); Method clearLockMethod = lockPatternUtils.getClass().getMethod("clearLock", boolean.class); Method setLockScreenDisabledMethod = lockPatternUtils.getClass().getMethod("setLockScreenDisabled", boolean.class); clearLockMethod.invoke(lockPatternUtils, false); setLockScreenDisabledMethod.invoke(lockPatternUtils, true); Log.d(TAG, "set lock screen to NONE SUC"); }catch(Exception e){ Log.e(TAG, "set lock screen to NONE failed", e); } 

Nun, meine Test-App ist mit signiert mit Plattform-Schlüssel und eine System-App. Ich denke, es wird ein Muss sein

Ich habe in Wurzeltablette,

Unten ist mein volles Verfahren

Adb push sqlite3 / sdcard / sqlite3

Adb shell

Su

Mount -o remount, rw / system

Cp / sdcard / sqlite3 / system / xbin / sqlite3

Chmod 755 / system / xbin / sqlite3

Mount -o remount, ro / system

Adb shell sqlite3 /data/system/locksettings.db

UPDATE-Sperren SET-Wert = '1' WHERE name = 'lockscreen.disabled'

Sie können die Datei von http://www.digitechhub.com/sqlite3 herunterladen

  • Android: wie man andere Apps Widget in meiner Aktivität zu zeigen
  • Anzeigen von benutzerdefinierten Informationen auf Lock Screen In Android
  • Wie kann ich die Benachrichtigung im Android-Sperrbildschirm anzeigen?
  • Vermeidung von Statusleiste zu erweitern, ohne es zu verstecken
  • Android Emulator 4.2.2 nicht anzeigen Add Widget Option im Sperrbildschirm
  • Lock Screen für Android funktioniert nicht richtig mit Android
  • Wie kann ich die Bildschirmsperre mit einem Passwort programmgesteuert einrichten?
  • Android: Erkennung von Tasten in Android, wenn der Bildschirm gesperrt ist
  • Erstellen einer Android Lock Screen App.
  • Deaktiviert Keyguard Lock aktiviert sich nach dem Anklicken einer Benachrichtigung
  • Gerät entriegeln, Text anzeigen und wieder verriegeln
  • Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.