5

我们正在使用 KeyboardCapabilities.KeyboardPresent 来测试键盘是否连接到设备:

bool hasKeyboard = new KeyboardCapabilities().KeyboardPresent == 1;

不幸的是,无论是否连接了蓝牙键盘,它总是为真。我们使用以下硬件进行了尝试:

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

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

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

我们是否在这里遗漏了一些东西,或者是否有一个我们应该使用的 API 来检测这些变化?

4

2 回答 2

2

同样有这个问题,在我的 Microsoft Surface(它有一个可拆卸的键盘)上,KeyboardPresent总是返回一个“1”,即使没有连接键盘(触摸/打字机盖)并且我们打开了软件键盘。

于 2012-12-27T06:41:22.800 回答
1

我的平板电脑也有同样的行为。可能是bug...

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

于 2012-10-11T22:53:55.923 回答