Android - Активация ключа блокировки системы (так называемый экран блокировки)

голоса
9

Я должен активировать блокировку системы андроида (тот , который вы получаете , когда вы нажимаете питание / повесить кнопку). Глянь сюда:

IMG

Я уже просмотрел документацию , но все , что я нашел , было PowerManager и KeyguardManager . И , похоже , не является решением :-(.

Итак, все ли знают, как добиться того, что из приложения Android? (При наличии специальных разрешений не требуется, это не проблема, но изменения параметров устройства не является решением проблемы ...)

EDIT : Или кто - то знает , что это, безусловно , не возможно вообще? Btw. Craigs решение с отправкой ключей больше не работает (см комментарии).

Задан 09/04/2009 в 11:58
источник пользователем
На других языках...                            


5 ответов

голоса
2

Я искал ответ на точно такой же вопрос на некоторое время. По-видимому, после того, как 2,0 были удалены далее диспетчер устройств привилегии для уровня приложений. Но с Froyo - 2.2 менеджер политики устройства раскрывается предоставление нам разработчики множества управлений административных уровней.

http://developer.android.com/guide/topics/admin/device-admin.html

Ответил 02/11/2010 в 12:29
источник пользователем

голоса
1

Похоже, функция блокировки экрана осуществляется с помощью метода:

public void goToSleep(long time)

Способ PowerManager.java. Можно получить ссылку на него таким образом:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

Однако для этого требуется разрешение

android.permission.DEVICE_POWER

что разрешение уровень 2 доступен только в системе.

Так выглядит это не выполнимо. Это для версии 1.1 только, я не знаю, за 1,5.

Ответил 20/04/2009 в 18:33
источник пользователем

голоса
1

Что вы ищете является reenableKeyguard () метод в KeyguardManager.KeyguardLock мой друг!

Ответил 20/04/2009 в 16:12
источник пользователем

голоса
0

Рытье через источник Android найдено WindowManagerService , который , кажется, есть открытый метод ( startAppFreezingScreenLocked) для активации этого. Это может быть хорошим местом , чтобы начать искать ваш ответ, так как , к сожалению , это не кажется , как будто вы можете сразу получить объект WindowManagerService.

Ответил 20/04/2009 в 16:01
источник пользователем

голоса
0

Там очень хороший пример здесь:

http://www.anddev.org/throwing-simulating_keystrokes_programatically-t717.html

Похоже, что вы можете программно вызвать любое нажатие клавиши для отправки в систему. Это звучит как клавиатурные вы ищете является KEYCODE_ENDCALL, но если это не работает, существует множество других кодов, чтобы попробовать здесь:

http://developer.android.com/reference/android/view/KeyEvent.html

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

Ответил 09/04/2009 в 17:57
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more