Как разблокировать Android 6.0 кодом

Я хочу разблокировать свой телефон Android с помощью программирования. Я использовал приведенный ниже код для Android 6.0, но у него есть некоторые проблемы.

    KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    final KeyguardManager.KeyguardLock kl = km .newKeyguardLock("MyKeyguardLock");
    kl.disableKeyguard();

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
            | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
    wakeLock.acquire();

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

Поскольку KeyguardLock устарел, поэтому я использую код ниже

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

но у него ошибка

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6363)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:874)
at android.view.View.requestLayout(View.java:17483)
at android.view.View.setLayoutParams(View.java:11478)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:305)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:91)
at android.app.Activity.onWindowAttributesChanged(Activity.java:2596)
at android.support.v7.view.WindowCallbackWrapper.onWindowAttributesChanged(WindowCallbackWrapper.java:108)
at android.view.Window.dispatchWindowAttributesChanged(Window.java:852)
at com.android.internal.policy.impl.PhoneWindow.dispatchWindowAttributesChanged(PhoneWindow.java:4252)
at android.view.Window.setFlags(Window.java:825)
at android.view.Window.addFlags(Window.java:771)

Как это исправить? Во-вторых, если мой телефон заблокирован паролем, как я могу его разблокировать? Спасибо


person Jame    schedule 14.08.2016    source источник


Ответы (1)


Проблема с разрешением, вы можете добавить разрешение и предоставить это разрешение, потому что зефиру нужно предоставить разрешение, ваш код работает до того, как зефир станет идеальным.

person Yogesh Rathi    schedule 14.08.2016
comment
Благодарить. Не могли бы вы отредактировать разрешение на работу во всех версиях Android? Я тестировал в Android 5.0, у него есть еще одна проблема: телефон разблокируется, но экран не светится. - person Jame; 14.08.2016
comment
Ищите на складе переполнение как разблокировать устройство .. вы получите ответ - person Yogesh Rathi; 14.08.2016
comment
Я искал в stackoverflow и получил код выше. Он разблокирует мой телефон, но не будит свет - person Jame; 14.08.2016
comment
Хорошо. Это работает, но когда я использую PARTIAL_WAKE_LOCK вместо FULL_WAKE_LOCK. Свет не работает, хотя экран разблокируется. Я думаю, что буду использовать ваш код с некоторым предупреждением о функции FULL_WAKE_LOCK - person Jame; 14.08.2016
comment
Вы знаете, почему я не могу использовать PARTIAL_WAKE_LOCK, хотя многие люди это предлагают? - person Jame; 14.08.2016