模拟在仿真器中打开/关闭硬件键盘

时间:2010-01-12 09:45:53

标签: android

有没有办法在模拟器中模拟打开/关闭'硬件'键盘? 我必须使用getResources()。getConfiguration()。keyboardHidden测试我捕获的一些更改,这将有很多帮助:)

提前谢谢!

2 个答案:

答案 0 :(得分:12)

要添加Samuh的解释(我不知道 - 很高兴知道我仍然可以通过改变方向来模拟打开/关闭硬件键盘),你可以测试没有键盘的景观和带键盘的景观之间的区别打开,通过更改仿真器AVD的硬件配置:AVD可以配置为具有硬件键盘。如果您的模拟器没有硬件键盘,则软键盘会如您所期望的那样出现,并且在没有键盘的手机上以横向模式显示横向模式。

要将仿真器AVD配置为没有硬件键盘,请在AVD& SDK Manager工具,单击“新建”以添加新的AVD,选择所需的SDK级别和其他选项,然后在“硬件”部分下,为“键盘支持”添加新属性,并将其设置为“否”。在AVD模拟器“详细信息”对话框中,这将显示为“hw.keyboard = no”。

注意:您还可以修改现有的AVD以通过以下方式切换其键盘支持:

  1. 打开 AVD Manager
  2. 选择您要修改的 AVD
  3. 点击右侧的编辑...
  4. 硬件部分,点击右侧的新建...
  5. 属性组合框中选择键盘支持,然后点击确定
  6. 再次在硬件部分中,将键盘支持 列更改为“否”
  7. 最后点击修改AVD 并退出管理器。
  8. 或者,您也可以编辑<avd path>/avd/<AVD device name>.avd/config.ini文件,并将hw.keyboard条目更改为是或否。在Mac和Linux上,通常为~/.android/,在Windows /Users/<user-name>/.android/上。

    根据Samuh的回答,这意味着您可以在键盘打开的情况下检查手机处于横向模式的行为(仿真器配置了硬件键盘),或者在没有键盘的横向模式下(仿真器配置了没有键盘)。对此的两个小挫折是1)你不一定能模仿它在拥有硬件键盘的设备上的横向模式,但键盘是隐藏的(如果我理解正确的话),并且2)为了测试这两种不同的情况,你必须运行两个独立的仿真器或至少两个单独启动的AVD。

答案 1 :(得分:2)

我有一次这个问题(关于模拟键盘滑出/插入),并期望在模拟器的官方文档的Simulating Hardware events using Emulator console部分找到一些东西,但不幸的是我不能。我认为如果将键盘滑入/滑出并且其仿真只是要发送到内核的硬件信号会更容易。

然后我必须通过按下Numpad上的PageUp按钮来改变设备方向的间接方法。当您更改此设备的方向并打印表达式(getResources().getConfiguration().hardKeyboardHidden == config.HARDKEYBOARDHIDDEN_YES)的值时,您将获得不同的纵向和横向值。因此,更改模拟器方向在某种程度上与使硬键盘滑出(不隐藏)和滑入(隐藏)有关。

看看你的情况是否有效......