您的位置:首页 > 移动开发 > Android开发

android 4.1 平板连接USB键盘,默认键盘布局

2013-03-22 14:49 295 查看
由于工作关系,客户出外单,经常提到:连接USB键盘,默认键盘布局为法语,西班牙语。跟踪了下代码,终于搞定:

frameworks/base/packages/InputDevices/res/xml/keyboard_layouts.xml 此文件定义了所支持的语言键盘布局

修改路径: frameworks\base\packages\SystemUI\

AndroidManifest.xml

InputMethodButton.java

具体修改参照附件。

private void updateHardKeyboards() {

if (getResources().getConfiguration().keyboard == Configuration.KEYBOARD_QWERTY){

final int[] devices = InputDevice.getDeviceIds();

for (int i = 0; i < devices.length; i++) {

InputDevice device = InputDevice.getDevice(devices[i]);

if (device != null

&& !device.isVirtual()

&& device.isFullKeyboard()) {

final String inputDeviceDescriptor = device.getDescriptor();

final String keyboardLayoutDescriptor =

mIm.getCurrentKeyboardLayoutForInputDevice(inputDeviceDescriptor);

final KeyboardLayout keyboardLayout = keyboardLayoutDescriptor != null ?

mIm.getKeyboardLayout(keyboardLayoutDescriptor) : null;

if (keyboardLayout == null) {

String defaultKeyboardLayoutDescriptor = "com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_german";//默认德语键盘布局

KeyboardLayout defaultKeyboardLayout;

mIm.addKeyboardLayoutForInputDevice(inputDeviceDescriptor,

defaultKeyboardLayoutDescriptor);

}

}

}

}

}

mIm.addKeyboardLayoutForInputDevice(inputDeviceDescriptor,defaultKeyboardLayoutDescriptor); 具体改法可以参照附件。

注意 AndroidManifest.xml 必须添加<uses-permission android:name="android.permission.SET_KEYBOARD_LAYOUT" />权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: