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" />权限。
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" />权限。
相关文章推荐
- android:添加usb键盘+按键布局和映射的修改
- Android 连接USB 默认选中MTP
- android:添加usb键盘+按键布局和映射的修改
- android:添加usb键盘+按键布局和映射的修改
- Android 平板通过USB口连接小票打印机
- Android USB默认连接模式为MTP
- android:添加usb键盘+按键布局和映射的修改
- android:添加usb键盘+按键布局和映射的修改
- Android开发 (小属性)积累-------------------设置键盘默认顶起布局
- Android4.1+通过USB 连接Ubuntu进行文件传输方案
- Delphi 调试连接 任意Android手机/平板/盒子(要安装Google USB Driver,并且还有USB的相关许多文章)
- Android 开发 软键盘覆盖而不上推布局 控件总显示在软件盘上边
- Android Studio2.3更换默认的ConstraintLayout布局
- Android中软键盘弹出时关于布局的问题
- 将Android Studio默认布局ConstraintLayout切换成LinearLayout
- Android键盘将布局顶上去的解决办法
- Android 软键盘弹出时布局内指定内容上移实现及问题解决
- android EditText默认数字键盘,能输入字母,数字和中文
- 互联网远程唤醒android车机(车机连接USB 4G模块)的实现
- Android 4.1 设置默认开机动态壁纸