如何检测Android设备是否连接了外部键盘?

3
在我的应用程序中,我需要检测设备是否连接了外部键盘,以确定向用户显示什么内容。
我知道在我的设备Xoom android 3.1上,如果连接了外部键盘,软键盘将不会显示。
我该如何知道Android设备是否通过USB或蓝牙连接了外部键盘?
谢谢!

你好,你提到我们可以使用newConfig.KeyboardHidden,请问如果键盘存在会显示什么?我的意思是值是什么? - Rat-a-tat-a-tat Ratatouille
2个回答

4

您可以通过以下代码判断蓝牙键盘是否连接到 Android 设备:

getResources().getConfiguration().keyboard != Configuration.KEYBOARD_NOKEYS;

如果返回 true,则表示蓝牙键盘已连接,否则为 false。


当我在 Android 模拟器上运行此代码时,它会给我返回 "true",但我不知道它是否正常工作。 - Abhijit Chakra

1
你需要使用一个 BroadcastReceiver 并为蓝牙操作注册一个意图过滤器。你还需要在 USB API 中搜索其他内容。 BroadcastReceiver 的 onReceive 方法将处理这些活动。

3
谢谢。我本来打算按照你说的做,但是我找到了另外一种方法。在AndroidManifest.xml文件中添加android:configChanges="keyboard",当外部键盘插入或移除时,将调用onConfigurationChanged方法。可以通过newConfig.hardKeyboardHidden进行检查。 - Small Archer
是的,那也不错...你本可以将其作为答案并接受它,但我也不介意得到一些积分。 - Its not blank

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