有没有办法检测我当前正在运行的设备是否安装了硬件键盘?
我如何查询设备功能?
答案 0 :(得分:33)
“getResources()。getConfiguration()。键盘提供的标志是一个 检查哪个键盘(如果有)可用的好方法。“[1]
http://d.android.com/reference/android/content/res/Configuration.html#keyboard
答案 1 :(得分:0)
使用以下方法随时确定硬键盘的存在:
(据我所知,软键盘全部 lack 都在下面测试过)
public static boolean isHardKB(Context ctx) {
Configuration cf = ctx.getResources().getConfiguration();
return cf.navigation==Configuration.NAVIGATION_DPAD
|| cf.navigation==Configuration.NAVIGATION_TRACKBALL
|| cf.navigation==Configuration.NAVIGATION_WHEEL;
}
(可选)通过 AndroidManifest 捕获每个受影响的活动的所有运行时键盘更改:
android:configChanges="keyboard|keyboardHidden|navigation"
但是请确保至少使用一个虚拟 onConfigurationChanged()
支持上述清单更改@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Optionally employ 'isHardKB()'
}
答案 2 :(得分:0)
要检测已连接的常见qwerty键盘,请使用以下方法:
private boolean isKeyboardConnected() {
return getResources().getConfiguration().keyboard == KEYBOARD_QWERTY;
}