当前位置: 首页 > wzjs >正文

三否网站信用网企业查询

三否网站,信用网企业查询,wordpress 短代码失效,百度自动优化外界实体物理键盘,需要选择键盘布局,不然会对应输入不正确,某些平台是这样的。 实体键盘在插入设备中后会自动设置一个布局,但是可能不是我们想要的。 修改两个功能: 根据系统语言设置默认的键盘。 默认添加两个键盘…

外界实体物理键盘,需要选择键盘布局,不然会对应输入不正确,某些平台是这样的。

实体键盘在插入设备中后会自动设置一个布局,但是可能不是我们想要的。

修改两个功能:
根据系统语言设置默认的键盘。

默认添加两个键盘布局到'选择键盘布局' 的dialog界面

键盘的布局文件apk位置:  

frameworks/base/packages/InputDevices/res/raw/

frameworks/base/packages/InputDevices/res/xml/keyboard_layouts.xml

追查设置中的布局找到这里,选择键盘布局的Dialog,packages/apps/Settings/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java

点击设置键盘布局,会走到  packages/apps/Settings/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java

查看到 addKeyboardLayoutForInputDevice 设置键盘布局,所以利用这里我们添加。

@Overridepublic boolean handlePreferenceTreeClick(Preference preference) {if(DEBUG)Log.d("testkeyboard","----handlePreferenceTreeClick---");if (!(preference instanceof SwitchPreference)) {return false;}final SwitchPreference switchPref = (SwitchPreference) preference;final KeyboardLayout layout = mPreferenceMap.get(switchPref);if (layout != null) {final boolean checked = switchPref.isChecked();if (checked) {mIm.addKeyboardLayoutForInputDevice(mInputDeviceIdentifier,layout.getDescriptor());if(DEBUG)Log.d("testkeyboard","layout.getDescriptor() = " + layout.getDescriptor());} else {mIm.removeKeyboardLayoutForInputDevice(mInputDeviceIdentifier,layout.getDescriptor());}}return true;}

主要修改 frameworks/base/services/core/java/com/android/server/input/InputManagerService.java 

addKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier,String keyboardLayoutDescriptor)

如下修改:

diff --git a/frameworks/base/services/core/java/com/android/server/input/InputManagerService.java b/frameworks/base/services/core/java/com/android/server/input/InputManagerService.java
index 5fc3712d221..1bc1ee6cef7 100755
--- a/frameworks/base/services/core/java/com/android/server/input/InputManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/input/InputManagerService.java
@@ -1101,6 +1101,7 @@ public class InputManagerService extends IInputManager.StubString layout =getCurrentKeyboardLayoutForInputDevice(inputDevice.getIdentifier());if (layout == null) {
+                    if(DEBUG) Slog.d("testkeyboard", "---goto--getDefaultKeyboardLayout");layout = getDefaultKeyboardLayout(inputDevice);if (layout != null) {setCurrentKeyboardLayoutForInputDevice(
@@ -1134,6 +1135,20 @@ public class InputManagerService extends IInputManager.Stubfinal Locale systemLocale = mContext.getResources().getConfiguration().locale;// If our locale doesn't have a language for some reason, then we don't really have a// reasonable default.
+
+        if(DEBUG) Slog.d("testkeyboard", "---getDefaultKeyboardLayout---getLanguage="+systemLocale.getLanguage());
+        String russuan = "com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_russian";
+        String english_us = "com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us";//根据语言设置当前键盘
+        if(systemLocale.getLanguage().equals("en")){
+            return english_us;
+        }
+        if(systemLocale.getLanguage().equals("ru")){
+            return russuan;
+        }
+        //这里就是添加的两个键盘
+        addKeyboardLayoutForInputDevice(d.getIdentifier(),russuan);
+        addKeyboardLayoutForInputDevice(d.getIdentifier(),english_us);
+if (TextUtils.isEmpty(systemLocale.getLanguage())) {return null;}
@@ -1150,6 +1165,7 @@ public class InputManagerService extends IInputManager.Stubfor (int localeIndex = 0; localeIndex < numLocales; ++localeIndex) {if (isCompatibleLocale(systemLocale, locales.get(localeIndex))) {layouts.add(layout);
+                    if(DEBUG) Slog.d("testkeyboard", "---getDefaultKeyboardLayout---for--getLanguage="+systemLocale.getLanguage());break;}}
@@ -1386,10 +1402,12 @@ public class InputManagerService extends IInputManager.Stub@Override // Binder callpublic KeyboardLayout[] getKeyboardLayoutsForInputDevice(final InputDeviceIdentifier identifier) {
+        if(DEBUG) Slog.d("testkeyboard", "---getKeyboardLayoutsForInputDevice---");final String[] enabledLayoutDescriptors =getEnabledKeyboardLayoutsForInputDevice(identifier);final ArrayList<KeyboardLayout> enabledLayouts =new ArrayList<>(enabledLayoutDescriptors.length);
+        if(DEBUG) Slog.d("testkeyboard", "---ArrayList enabledLayouts---");final ArrayList<KeyboardLayout> potentialLayouts = new ArrayList<>();visitAllKeyboardLayouts(new KeyboardLayoutVisitor() {boolean mHasSeenDeviceSpecificLayout;
@@ -1402,6 +1420,7 @@ public class InputManagerService extends IInputManager.Stubfor (String s : enabledLayoutDescriptors) {if (s != null && s.equals(layout.getDescriptor())) {enabledLayouts.add(layout);
+                        if(DEBUG) Slog.d("testkeyboard", "---ArrayList enabledLayouts.add---");return;}}
@@ -1436,8 +1455,10 @@ public class InputManagerService extends IInputManager.Stubpublic KeyboardLayout getKeyboardLayout(String keyboardLayoutDescriptor) {Objects.requireNonNull(keyboardLayoutDescriptor,"keyboardLayoutDescriptor must not be null");
+        if(DEBUG) Slog.d("testkeyboard", "---getKeyboardLayout---keyboardLayoutDescriptor="+keyboardLayoutDescriptor);final KeyboardLayout[] result = new KeyboardLayout[1];
+        if(result!=null) Slog.d("testkeyboard", "---getKeyboardLayout---result.length="+result.length);visitKeyboardLayout(keyboardLayoutDescriptor,(resources, keyboardLayoutResId, layout) -> result[0] = layout);if (result[0] == null) {
@@ -1632,12 +1653,15 @@ public class InputManagerService extends IInputManager.Stub@Override // Binder callpublic String[] getEnabledKeyboardLayoutsForInputDevice(InputDeviceIdentifier identifier) {String key = getLayoutDescriptor(identifier);
+        if(DEBUG) Slog.d("testkeyboard", "---getEnabledKeyboardLayoutsForInputDevice---key="+key);synchronized (mDataStore) {String[] layouts = mDataStore.getKeyboardLayouts(key);
+            if(DEBUG) Slog.d("testkeyboard", "---getEnabledKeyboardLayoutsForInputDevice---getDescriptor="+identifier.getDescriptor());if ((layouts == null || layouts.length == 0)&& !key.equals(identifier.getDescriptor())) {layouts = mDataStore.getKeyboardLayouts(identifier.getDescriptor());}
+            if(DEBUG) Slog.d("testkeyboard", "---getEnabledKeyboardLayoutsForInputDevice---length="+layouts.length);return layouts;}}
@@ -1645,6 +1669,7 @@ public class InputManagerService extends IInputManager.Stub@Override // Binder callpublic void addKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier,String keyboardLayoutDescriptor) {
+        if(DEBUG) Slog.d("testkeyboard", "---addKeyboardLayoutForInputDevice---keyboardLayoutDescriptor="+keyboardLayoutDescriptor);if (!checkCallingPermission(android.Manifest.permission.SET_KEYBOARD_LAYOUT,"addKeyboardLayoutForInputDevice()")) {throw new SecurityException("Requires SET_KEYBOARD_LAYOUT permission");
@@ -1653,6 +1678,7 @@ public class InputManagerService extends IInputManager.Stub"keyboardLayoutDescriptor must not be null");String key = getLayoutDescriptor(identifier);
+        if(DEBUG) Slog.d("testkeyboard", "---addKeyboardLayoutForInputDevice---key="+key);synchronized (mDataStore) {try {String oldLayout = mDataStore.getCurrentKeyboardLayout(key);

http://www.dtcms.com/wzjs/839234.html

相关文章:

  • design设计网站营销型的物流网站
  • 常见的静态网站开发技术蓝色响应式机械类网站
  • wordpress做下载型网站6在线玩网页游戏
  • 浙江省龙泉市建设局网站保定建行网站首页登录
  • 途牛旅行网站建设策划书北京比较好的网站公司
  • 做个小网站多少钱做网站播放未上映的电影是侵权吗
  • 沧州网站建设一网美联商务网站建设兴田德润电话多少
  • 企业网站建设需要什么资料wordpress无限登录密码破解
  • 企业网站建设招标wordpress wpautop
  • 秦皇岛网站设计学校网站建设项目可行性分析
  • 前几年做那个网站能致富襄阳市建设工程造价管理站网站
  • 网站模板50元wordpress主题无法创建
  • 网站网站是怎么做的怎么外贸网站推广
  • 做网站之前备案新闻资讯建站服务商
  • 非凡免费建网站平台三水 网站建设
  • 做外贸的 需要什么样的网站海通建设集团有限公司网站
  • 网站建设免费模板宁波市建设工程监理协会网站
  • 用ih5做微网站专业网站设计定制
  • 站长工具网网站制作哪里好
  • 怎么做一个个人网站江苏电商网站开发
  • 新颖网站页面设计怎样制作网站教程
  • 哪些软件可以做网站wordpress模版如何修改底部信息
  • 网站建设服务器配置施工企业项目负责人现场带班时间
  • 做网站界面尺寸企业展厅建筑
  • 东莞网站设计如何以前的网站忘了怎么办啊
  • 网站开发的出路博客移植wordpress
  • 关于建设学校网站策划书的范本淘宝网站建设的优点
  • ps做的网站保存不了jpgwordpress文章博客模板
  • wordpress 最新一片文章盐城seo排名
  • 腾讯云对象存储wordpress嘉兴seo网站推广