我们使用KeyboardCapabilities.KeyboardPresent来测试键盘是否连接到设备:
bool hasKeyboard = new KeyboardCapabilities().KeyboardPresent == 1;
不幸的是,无论是否连接了蓝牙键盘,它始终为TRUE.我们尝试使用以下硬件:
Dell Vostro 470是一款带有无线蓝牙键盘的台式电脑,具有电源开/关选项.
http://www.dell.com/in/business/p/vostro-470/pd
三星700T笔记本(板岩)
http://www.samsung.com/uk/consumer/pc-peripherals/slate-pc/slate-pc/XE700T1A-A01UK
关闭键盘,蓝牙,从设备列表中删除键盘等没有帮助,KeyboardCapabilities.KeyboardPresent始终返回1.
我们在这里遗漏了什么,或者是否有我们应该使用的API来检测这些变化?
解决方法
我的平板电脑上有相同的行为.可能是个bug …
更复杂的解决方案是枚举设备容器.它会告诉您是否连接了任何键盘.有关更多详细信息,请参阅Device enumeration sample.