有没有办法在模拟器中模拟打开/关闭'硬件'键盘? 我必须使用getResources()。getConfiguration()。keyboardHidden测试我捕获的一些更改,这将有很多帮助:)
提前谢谢!
答案 0 :(得分:12)
要添加Samuh的解释(我不知道 - 很高兴知道我仍然可以通过改变方向来模拟打开/关闭硬件键盘),你可以测试没有键盘的景观和带键盘的景观之间的区别打开,通过更改仿真器AVD的硬件配置:AVD可以配置为具有硬件键盘。如果您的模拟器没有硬件键盘,则软键盘会如您所期望的那样出现,并且在没有键盘的手机上以横向模式显示横向模式。
要将仿真器AVD配置为没有硬件键盘,请在AVD& SDK Manager工具,单击“新建”以添加新的AVD,选择所需的SDK级别和其他选项,然后在“硬件”部分下,为“键盘支持”添加新属性,并将其设置为“否”。在AVD模拟器“详细信息”对话框中,这将显示为“hw.keyboard = no”。
注意:您还可以修改现有的AVD以通过以下方式切换其键盘支持:
或者,您也可以编辑<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)
的值时,您将获得不同的纵向和横向值。因此,更改模拟器方向在某种程度上与使硬键盘滑出(不隐藏)和滑入(隐藏)有关。
看看你的情况是否有效......