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

  • Lockscreen wird zwischen den Aktivitäten angezeigt
  • Aktivität auf dem Sperrbildschirm - Entlassung der vorherigen Tätigkeit
  • Android-Aktivität über Standard-Sperrbildschirm
  • Wie bekomme ich neue Aktivität aus dem Sperrbildschirm?
  • Starten Sie externe Aktivität, während das Telefon gesperrt ist
  • Verhinderung der Erweiterung der Statusleiste
  • Ein Weg, um Unlock-Event in Android zu bekommen?
  • Android widget für das entsperren
  • Aktivität mit bestimmter Höhe vor der Verriegelung
  • Vollbild transparente Aktivität (kein Titel & Statusleiste) funktioniert nicht ... warum?
  • Entwicklung einer Android-Sperr-Screen-Anwendung
  • Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.