Если вы разработчик или имеете доступ к коду
тестируемое приложение тогда лучший и самый простой способ достижения
это использует:
http://developer.android.com/guide/topics/testing/activity_testing.html
KeyguardLock keyguardLock = ((KeyguardManager)keyguardService).newKeyguardLock(TAG);
if (enable) {
keyguardLock.reenableKeyguard();
} else {
keyguardLock.disableKeyguard();
}
return true;
}
На мой взгляд, это противное решение, поскольку оно требует от вас
дополнительное разрешение в вашем приложении - тот, который практически нет
Приложение понадобится.
Как упоминалось [OP], вы должны удалить это, но люди забывают: я видел
несколько приложений, выпущенных на Маркете, которые все еще имеют это разрешение
включенный, когда это действительно должно было быть удалено.
Если вы можете автоматически включить это разрешение только для тестовых сборок,
или автоматически удалить разрешение при сборке релиза, затем
хорошо.
Второй лучший способ - использовать команды оболочки adb для разблокировки
загрузка эмулятора. Фактический код будет отличаться в зависимости от того, что
метод, который вы используете для вызова этих команд. Это, конечно, имеет
ограничение, что он может быть запущен только при первом запуске
эмулятор, после запуска эмулятора эта команда ничего не сделает.
Вы можете запускать команду "adb shell" так часто, как вам нравится. Во-первых
при запуске откроется меню Android, которое должно быть безвредным. На
при каждом последующем запуске он нажимает Меню, которое разблокирует
экран по желанию.
Третий метод - это telnet в эмуляторе, а затем используйте EV_KEY для
разблокировать его.
telnet localhost 5554
отправка события EV_KEY: KEY_MENU: 1 EV_KEY: KEY_MENU: 0
бросить курить
Вы можете поместить это в файл bat или shell и вызвать его из своего теста в
разблокировать домашний экран. Это опять-таки имеет ограничение возможности
разблокировать только при первой загрузке и не может быть использован для разблокировки дома
экран после первой загрузки.
Это кажется задом наперед. Главный экран не блокируется при запуске
эмулятор впервые.
В любом случае, я бы вообще не рекомендовал это, так как у нас больше
Надежное решение "adb shell" выше. Который также должен работать на реальных
устройства.
Четвертый вариант - использовать maven для разблокировки.
http://issues.hudson -ci.org / просмотр / HUDSON-7185
Это очень полезно для целей КИ, но ограничено неспособностью
разблокировать экран от затмения. Так что если вы пишете свои тесты в
Затмение, вы должны запустить тесты, используя командную строку, если вам нужно
разблокировать экран.
Уточнение: этот отчет об ошибке касается плагина Android Emulator для
Дженкинс / Хадсон, а не Мэйвен. Решение Maven, упомянутое там просто
использует опцию "telnet" выше.
Наконец, еще одним вариантом является использование снимков эмулятора Android.
Представленный в Android SDK Tools v9, эмулятор теперь поддерживает сохранение
текущее состояние эмулятора (аналогично другим продуктам виртуализации
как VMware).
Так что вы можете запустить эмулятор один раз, чтобы он разблокировался, затем
закрой это. Запуск эмулятора впоследствии сразу загрузит
чистый эмулятор с разблокированным экраном (до тех пор, пока вы не сохраните
Состояние эмулятора при завершении работы (т. е. опция --no-snapshot-save).
Кстати, эта функция снимка будет автоматизирована и включена в
следующий выпуск плагина эмулятора Android для Jenkins / Hudson.