Windows 8中WinRT的KeyboardCapabilities.KeyboardPresent属性始终为true。

5
我们正在使用KeyboardCapabilities.KeyboardPresent来测试设备是否连接了键盘:
bool hasKeyboard = new KeyboardCapabilities().KeyboardPresent == 1;

不幸的是,无论是否连接了蓝牙键盘,KeyboardCapabilities.KeyboardPresent始终为TRUE。我们尝试了以下硬件:

Dell Vostro 470是一台配备无线蓝牙键盘的台式电脑,具有开/关机选项。 http://www.dell.com/in/business/p/vostro-470/pd

三星700T Notebook (Slate) http://www.samsung.com/uk/consumer/pc-peripherals/slate-pc/slate-pc/XE700T1A-A01UK

关闭键盘、蓝牙、将键盘从设备列表中移除等都没有帮助,KeyboardCapabilities.KeyboardPresent始终返回1。

我们是不是漏掉了什么,或者有没有其他API可以用来检测这样的变化?

2个回答

2

我也遇到了这个问题,在我的微软Surface上(它有一个可拆卸的键盘),KeyboardPresent总是返回“1”,即使没有键盘(触摸/类型封面)连接,我们已经打开了软件键盘。


1

我的平板电脑也有同样的问题。可能是一个bug...

更复杂的解决方案是枚举设备容器。这将告诉您是否连接了任何键盘。有关更多详细信息,请参阅设备枚举示例


哦,我试过了,它不可靠,实际上返回相同的结果。键盘在设备信息中列出,尽管已经断开连接。 - Rene Schulte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接