Имитация открытия / закрытия аппаратной клавиатуры в эмуляторе - PullRequest
8 голосов
/ 12 января 2010

Есть ли способ эмулировать открытие / закрытие «аппаратной» клавиатуры в эмуляторе? Я должен протестировать некоторые изменения, которые я фиксирую, используя getResources (). GetConfiguration (). KeyboardHidden, и это поможет довольно много:)

Заранее спасибо!

Ответы [ 2 ]

12 голосов
/ 01 июня 2010

Чтобы добавить объяснение Самуха (которого я не знал - приятно знать, что я все еще могу имитировать открытие / закрытие аппаратной клавиатуры, меняя ориентацию), вы можете проверить разницу между альбомным режимом без клавиатуры и альбомным режимом с помощью клавиатуры. открыть, изменив аппаратную конфигурацию AVD эмулятора: AVD может быть настроен на аппаратную клавиатуру или нет. Если в вашем эмуляторе нет аппаратной клавиатуры, программная клавиатура отображается так, как вы и ожидаете, и переход в альбомный режим должен отображаться так же, как и в альбомном режиме на телефоне без клавиатуры.

Чтобы настроить эмулятор AVD так, чтобы он не работал с аппаратной клавиатурой, в инструменте AVD & SDK Manager нажмите «Создать», чтобы добавить новый AVD, выберите нужный уровень SDK и другие параметры, а также в разделе «Оборудование». добавьте новое свойство для «Поддержка клавиатуры» и установите для него «Нет». В диалоговом окне «Подробности» эмулятора AVD это будет отображаться как «hw.keyboard = no».

Примечание: вы также можете изменить существующий AVD для переключения его поддержки клавиатуры:

  1. Откройте AVD Manager
  2. Выберите AVD , который вы хотите редактировать
  3. Нажмите Редактировать ... справа
  4. В разделе Hardware нажмите New ... справа
  5. В поле Property выберите Поддержка клавиатуры и нажмите OK
  6. Снова в разделе Hardware , измените Поддержка клавиатуры значение столбец на "no"
  7. Наконец нажмите Редактировать AVD и выйдите из диспетчера.

Кроме того, вы также можете отредактировать файл <avd path>/avd/<AVD device name>.avd/config.ini и изменить запись hw.keyboard на да или нет. В Mac и Linux обычно ~/.android/, а в Windows /Users/<user-name>/.android/.

Исходя из ответа Самуха, это означает, что вы можете проверить поведение телефона в режиме альбомной ориентации с открытой клавиатурой (в эмуляторе настроена аппаратная клавиатура) или в режиме альбомной ориентации без клавиатуры (эмулятор настроен без клавиатуры). Это приводит к двум незначительным разочарованиям: 1) вы не обязательно подражаете тому, как он будет выглядеть в альбомной ориентации на устройстве с аппаратной клавиатурой *1056*, но клавиатура скрыта (если я правильно понимаю), и 2 ) вам нужно будет запустить два отдельных эмулятора или по крайней мере два AVD, загруженных отдельно, чтобы проверить эти два разных случая.

2 голосов
/ 12 января 2010

У меня был этот вопрос однажды (о симуляции выдвижной клавиатуры), и я ожидал найти что-то в Моделировании аппаратных событий с помощью консоли эмулятора официальной документации эмулятора, но, к сожалению, я не смог , Я подумал, что было бы намного проще, если бы клавиатура вставлялась и выходила, а ее эмуляция была просто аппаратным сигналом для отправки в ядро.

Затем мне пришлось прибегнуть к косвенному методу изменения ориентации устройства, нажав кнопку PageUp на цифровой клавиатуре. Когда вы меняете ориентацию устройства, как это, и печатаете значение выражения (getResources().getConfiguration().hardKeyboardHidden == config.HARDKEYBOARDHIDDEN_YES), вы получаете разные значения для портрета и ландшафта. Таким образом, изменение ориентации эмулятора так или иначе связано с тем, чтобы жесткая клавиатура выдвигалась (не скрывалась) и вставлялась (скрывалась).

Посмотрите, работает ли это в вашем случае ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...