检测虚拟键盘的类型 - android

时间:2013-04-17 17:02:03

标签: android android-softkeyboard android-virtual-keyboard

我有一个Android应用程序,它处理来自标准键盘的输入与Swype键盘给出的输入不同。有没有办法以编程方式找出当前使用的键盘?

谢谢!

2 个答案:

答案 0 :(得分:1)

获得它的最佳方法是使用InputDeviceId。

int[] devicesIds = InputDevice.getDeviceIds();
for (int deviceId : devicesIds) {
    //Check the device you want
    InputDevice device = InputDevice.getDevice(deviceId);
    //device.getName must to have virtual
    //That check the keyboard type
    device.getKeyboardType(); //returns an int
}

参考:

https://developer.android.com/reference/android/view/InputDevice.html#getKeyboardType%28%29

答案 1 :(得分:0)

使用设置的安全静态内部类来获取默认键盘类型。

String defaultKeyboard = Settings.Secure.getString(context.getContentResolver(),
                    Settings.Secure.DEFAULT_INPUT_METHOD);

返回类型会是一个以“/”分隔的字符串序列,因此将此字符串wrt拆分为斜杠即可得到子字符串列表。 该列表的第一个元素将为您提供默认键盘的包名称。

defaultKeyboard = defaultKeyboard.split("/")[0];

P.S - 使用 try catch 包装 Settings.Secure 调用的良好做法。