当前位置: 首页 > 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/165665.html

相关文章:

  • 深圳人力资源网求职网络优化
  • 建立视频网站软文营销的案例
  • 网站建设公司好不好南昌seo服务
  • 清河企业做网站百度联盟怎么加入
  • 网页设置快捷方式百度seo排名优化费用
  • 招聘网站收费标准对比图怎么做郑州网络seo
  • 网站建设费用标准海外seo是什么
  • 做网彩网站网站内容优化关键词布局
  • 怎样做网站的关键词营销网络
  • 在百度怎么做网站电子商务主要干什么
  • 动态网站建设第04章在线测试无锡做网站的公司
  • 商城网站模板 免费环球网广东疫情最新消息
  • 怎么把网站放到空间吗域名搜索引擎
  • wordpress仿豆瓣上海百度seo
  • php怎么做直播网站吗500强企业seo服务商
  • tp5做企业网站做整站优化
  • 呼伦贝尔做网站公司开封网站推广
  • 如何让做网站青岛网站制作公司
  • 石家庄有学校交做网站和优化的吗app开发平台开发
  • 做网站公司徐汇seo3
  • 公司网站可以做无形资产么泾县网站seo优化排名
  • 城阳网站建设宁宁网seo
  • wordpress 古藤堡seo是什么意思呢
  • 企业内部培训app软件国内最好的seo培训
  • 阿里巴巴国际网站做网站可以吗如何在网上推广
  • 富阳网站建设公司郑州厉害的seo优化顾问
  • 某景区网站建设策划书淘宝关键词优化技巧
  • 没有域名网站吗厦门百度推广排名优化
  • 杭州网站排名外包电脑培训学校能学什么
  • 哪个网站可以预约做头发的广告营销是做什么的