2010-01-12 2 views
8

Есть ли способ имитировать открытие/закрытие «аппаратной» клавиатуры в эмуляторе? Мне нужно проверить некоторые изменения, которые я захватил с помощью getResources(). GetConfiguration(). КлавиатураHidden, и это помогло бы с большим количеством :)Имитация открытия/закрытия аппаратной клавиатуры в эмуляторе

Спасибо заранее!

ответ

12

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

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

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

  1. Открыть Менеджер AVD
  2. Выберите AVD вы хотите редактировать
  3. Нажмите на Редактировать ... справа
  4. В Аппаратное обеспечение раздел, щелкните по Новый ... на правой
  5. В комбинированном окне свойств выберите Клавиатура поддержки и нажмите OK
  6. Снова в разделе Hardware, изменение поддержкезначение, Keyboard колонки до «нет»
  7. Наконец нажмите Редактировать AVD и выйти из диспетчера.

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

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

+0

@jpmcosta: Вы уверены, что путь к Windows верен? Этот путь звучит как Mac (который у меня уже был, как '~/.android'). Разве Windows не будет 'C: \ Documents and Settings \ < \ .android \'? Возможно, последние версии Windows изменили это на 'C: \ Users \ \', но в этом случае вы должны использовать '\' вместо '/', чтобы избежать путаницы с другими платформами. – Joe

2

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

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

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

+0

Проблема в том, что я показываю разные виды для разных ориентаций, но также меняю макет, если клавиатура открыта. Это немного раздражает неспособность имитировать это в эмуляторе. – LambergaR

+0

Вы пытались изменить ориентацию, нажав кнопку PgUp? Объединив изменение ориентации с соответствующими проверками свойства hardKeyboardHidden, вы можете проверить, достигнуты ли все ваши логические/предикаты/удовлетворены. – Samuh