[英]Finding if external usb or bluetooth keyboard attached in Android
谁能告诉我是否有任何方法可以查明蓝牙 QWERTY 键盘是否连接到 android 设备。
我尝试使用getResources().getConfiguration.keyboard ,但无论是否连接键盘,它总是给我相同的值。
谢谢
一种方法是将android:configChanges="keyboard"
到AndroidManifest.xml文件中的活动。
有了这个,您可以覆盖onConfigurationChanged
,只要插入或拔出键盘就会调用它
@Override
public void onConfigurationChanged(Configuration newConfig)
{
if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
//A hardware keyboard is being connected
}
else if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES)
//A hardware keyboard is being disconnected
}
}
在 Kotlin 中对@LeonLucardie 的回答进行了改进。
清单(根据@MobileMon 的评论):
<activity
android:configChanges="keyboard|keyboardHidden"
活动:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
when (resources.configuration.hardKeyboardHidden) {
HARDKEYBOARDHIDDEN_NO -> Log.d(TAG, "A hardware keyboard is connected.")
HARDKEYBOARDHIDDEN_YES -> Log.d(TAG, "A hardware keyboard is disconnected.")
}
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
when (newConfig.hardKeyboardHidden) {
HARDKEYBOARDHIDDEN_NO -> Log.d(TAG, "A hardware keyboard is being connected.")
HARDKEYBOARDHIDDEN_YES -> Log.d(TAG, "A hardware keyboard is being disconnected.")
}
}
注意:调用super.onConfigurationChanged(newConfig)
似乎是强制性的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.