当前位置:首页 > 芯闻号 > 充电吧
[导读]Android6.0设置默认输入法,这里以日文输入法为例,1.在frameworks/base/packages/SettingsProvider/res/values/defaults.xml 添加

Android6.0设置默认输入法,这里以日文输入法为例,

1.在frameworks/base/packages/SettingsProvider/res/values/defaults.xml 添加:


jp.co.omronsoft.openwnn/.OpenWnnJAJP

2.在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java添加:



loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_input_method );

这个方法加在private void loadSecureSettings(SQLiteDatabase db)这个里面。


3.使能所有输入法,frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java


--- a/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java
+++ b/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -926,7 +926,7 @@ public class InputMethodUtils {
         // At the initial boot, the settings for input methods are not set,
         // so we need to enable IME in that case.
         public void enableAllIMEsIfThereIsNoEnabledIME() {
-            if (TextUtils.isEmpty(getEnabledInputMethodsStr())) {
+            if (!TextUtils.isEmpty(getEnabledInputMethodsStr())) {
                 StringBuilder sb = new StringBuilder();
                 final int N = mMethodList.size();
                 for (int i = 0; i < N; i++) {




这里的jp.co.omronsoft.openwnn/.OpenWnnJAJP是输入法ID,每个输入法都有自己的ID,如果不知道输入法ID,可以通过下面的打印方法获取:

frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java


 void buildInputMethodListLocked(ArrayListlist,
            HashMapmap, boolean resetDefaultEnabledIme) {
        if (DEBUG) {
            Slog.d(TAG, "--- re-buildInputMethodList reset = " + resetDefaultEnabledIme
                    + " n ------ n" + InputMethodUtils.getStackTrace());
        }
        list.clear();
        map.clear();

        // Use for queryIntentServicesAsUser
        final PackageManager pm = mContext.getPackageManager();
        String disabledSysImes = mSettings.getDisabledSystemInputMethods();
        if (disabledSysImes == null) disabledSysImes = "";

        final Listservices = pm.queryIntentServicesAsUser(
                new Intent(InputMethod.SERVICE_INTERFACE),
                PackageManager.GET_META_DATA | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,
                mSettings.getCurrentUserId());

        final HashMap<String, List> additionalSubtypes =
                mFileManager.getAllAdditionalInputMethodSubtypes();
        for (int i = 0; i < services.size(); ++i) {
            ResolveInfo ri = services.get(i);
            ServiceInfo si = ri.serviceInfo;
            ComponentName compName = new ComponentName(si.packageName, si.name);
            if (!android.Manifest.permission.BIND_INPUT_METHOD.equals(
                    si.permission)) {
                Slog.w(TAG, "Skipping input method " + compName
                        + ": it does not require the permission "
                        + android.Manifest.permission.BIND_INPUT_METHOD);
                continue;
            }

            if (DEBUG) Slog.d(TAG, "Checking " + compName);
			//打印添加在这里,打印所有输入法的ID
            Slog.d(TAG, "Checking packageName:" + si.packageName + "  name:" + si.name);

            try {
                InputMethodInfo p = new InputMethodInfo(mContext, ri, additionalSubtypes);
                list.add(p);
                final String id = p.getId();
                map.put(id, p);

                if (DEBUG) {
                    Slog.d(TAG, "Found an input method " + p);
                }

重新编译,烧录测试ok。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

1月19日,在2021年微信公开课Pro版微信之夜上,微信事业群总裁张小龙谈及了微信和其未来,另外他还透露微信即将拥有自己的输入法。

关键字: 微信 输入法

Linux系统一直受制于软硬件生态匮乏,而一众国产操作系统都基于Linux内核,这方面自然也需要格外努力。当然进步也是很大的,越来越多的软硬件都在积极适配国产系统。 麒麟软件今天宣布,讯飞输入法Lin

关键字: Linux 讯飞 输入法 麒麟

三星做了很多工作,可以说是一个创新的OEM。 近年来,韩国人投入了大量资源来实现设备的最佳设计。 他们还担心设备的安全性和整体性能。 据报道,三星也在寻找最好的软件,因为三星正在寻找针对Android 6.0棉花糖和新版...

关键字: android6.0 galaxy google

RedPit最近对OnePlus AMA提出的大多数问题都与软件更新有关,并且大多数都是公平的问题。 最后,OnePlus承诺将HydrogenOS(其在中国市场的ROM)与OxygenOS(其在世界其他地区的ROM)合...

关键字: android6.0 oneplus rom marshmallow

7月31日消息,拉勾联合搜狗输入法发布《互联网社畜研究报告》,数据显示,北京互联网社畜平均每天打字约8000个,稳居城市榜首。从岗位看,市场人每日打字数量7300个,是技术岗的4.3倍。 “后浪”们

关键字: 互联网 拉勾 输入法

终于启动了适用于Android智能手机的“附近共享”文件共享平台。 它允许两部Android 6.0或更高版本的Android手机彼此之间快速共享文件。 此功能类似于Apple的AirDrop文件共享平台。 经过多年的谣...

关键字: android6.0 google 附近共享

7 月 16 日消息 据 Wccftech 报道,微软通过昨晚的补丁修复了一些已知问题,这些问题影响了其最新的 Windows 10 版本 2004(又名 2020 年 5 月更新)。不过微软又新增

关键字: 微软 输入法

搜狗与百度间的输入法专利大战,终于有了第一季的结果。 日前,就搜狗诉百度输入法专利侵权系列纠纷案件,北京知识产权法院陆续作出一审判决。 其中,在涉案专利为“

关键字: 搜狗 百度 输入法

随着科技的不断发展,无论是虚拟世界还是现实世界都在经历着一场前所未有AI变革战。 1月16日,百度输入法搞了一场名为“AI·新输入 全感官输入2.0”的发布会,发布了其宣称为“国内首款真

关键字: AI 百度 输入法

5月18日第44个国际博物馆日,讯飞输入法携手苏州博物馆“用姑苏软语传承千年文化”,一起探索方言保护新形式。活动将人工智能技术与优秀传统文化相结合,通过A.I.互动页面趣味活动形式,吸引广大苏州方言母

关键字: 人工智能 苏州 讯飞 输入法 方言
关闭
关闭