Android 在emulator中模拟打开/关闭硬件键盘

Android 在emulator中模拟打开/关闭硬件键盘,android,Android,有没有办法在模拟器中模拟打开/关闭“硬件”键盘? 我必须测试使用getResources().getConfiguration().keyboardHidden捕获的一些更改,这会有很大帮助:) 提前谢谢你 我曾经有过一个问题(关于模拟键盘滑出/滑入),我希望在Emulator的官方文档中找到一些东西,但不幸的是我找不到。我认为,如果将键盘滑入/滑出及其模拟仅仅作为发送到内核的硬件信号,会容易得多 然后我不得不求助于通过按下Numpad上的PageUp按钮来改变设备方向的间接方法。当您像这样更改

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

提前谢谢你

我曾经有过一个问题(关于模拟键盘滑出/滑入),我希望在Emulator的官方文档中找到一些东西,但不幸的是我找不到。我认为,如果将键盘滑入/滑出及其模拟仅仅作为发送到内核的硬件信号,会容易得多

然后我不得不求助于通过按下Numpad上的PageUp按钮来改变设备方向的间接方法。当您像这样更改设备的方向并打印表达式的值
(getResources().getConfiguration().hardKeyboardHidden==config.hardKeyboardHidden\u YES)
时,您会得到纵向和横向的不同值。因此,改变仿真器方向与使硬键盘滑出(不隐藏)和滑入(隐藏)有关


看看这是否适用于您的情况…

为了补充Samuh的解释(我不知道——很高兴知道我仍然可以通过改变方向来模拟打开/关闭硬件键盘),您可以测试没有键盘的横向和打开键盘的横向之间的差异,通过更改仿真器AVD的硬件配置:可以将AVD配置为具有或不具有硬件键盘。如果您的模拟器没有硬件键盘,则软键盘的显示方式与您预期的相同,并且在没有键盘的手机上,进入横向模式时的显示方式应与横向模式时的显示方式相同

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

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

  • 打开AVD管理器
  • 选择要编辑的AVD
  • 单击右侧的编辑…
  • 在硬件部分中,单击右侧的新…
  • 在属性组合框中选择键盘支持,然后单击确定
  • 再次在“硬件”部分,将键盘支持值更改为“否”
  • 最后单击编辑AVD并退出管理器
  • 或者,您也可以编辑
    /avd/.avd/config.ini
    文件,并将
    hw.keyboard
    条目更改为是或否。在Mac和Linux上,通常是
    ~/.android/
    ,在Windows上是
    /Users/.android/


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

    问题是,我显示了不同方向的不同视图,但如果打开键盘,我也会更改布局。无法在模拟器中模拟这一点有点烦人。您是否尝试通过按PgUp按钮来更改方向?通过将方向更改与hardKeyboardHidden属性的适当检查相结合,您可以检查是否达到/满足了所有逻辑/谓词。@jpmcosta:您确定Windows路径正确吗?这条路径听起来像Mac(我已经有了,就像
    ~/.android
    )。Windows不是
    C:\Documents and Settings\\\.android`吗?也许Windows的最新版本已将其更改为
    C:\Users\`,但在这种情况下,您应该使用`而不是/`,以避免与其他平台混淆。