前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN:
http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

一、适用于ICS(Android V4.0)之前的版本:
1. 安装需要用的默认输入法(.apk)到system/app
2. 修改文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<string name="default_input_method" translatable="false">默认输入法 ID</string>
红色标记表示输入法 ID,比如 PinyinIME 为:com.android.inputmethod.pinyin/.PinyinIME

二、适用于 ICS、JB、JB2及之后的 版本:
1. 需要提前将用到的默认输入法(.apk)内置到系统中(请参考如何将APK预置进系统)

2. 修改文件 mediatek/config/${Project}/ProjectConfig.mk
将宏 DEFAULT_INPUT_METHOD 的值设置为所需的输入法;
比如 PinyinIME,则设为:DEFAULT_INPUT_METHOD = com.android.inputmethod.pinyin.PinyinIME

这个值是输入法源码中,包含InputMethodService子类的那个包名.实现InputMethodService的子类的类名。这里比log中打印的完整类名少一个"/",请注意

补充说明

上面的修改方法只适用于默认输入法为com.android.inputmethod.pinyin/.PinyinIME这种格式的输入法(即反斜杠后面就是类名的情况),

对于com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME (即反斜杠后面是完整类名的情况),

这种情况是不支持修改mediatek/config/${Project}/ProjectConfig.mk
里面DEFAULT_INPUT_METHOD的方法来设置默认输入法的。

以com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME 为例

请改用下面的方法修改,在SettingsProvider 的DatabaseHelper.java中

             Log.i(TAG, "defaultIME : " + defaultIME);
            if (defaultIME != null) {
                StringBuffer strBuffer = new StringBuffer(defaultIME);
                int lastDotPos = defaultIME.lastIndexOf(".");
                String strInsert = "/";
                strBuffer.insert(lastDotPos, strInsert);
                loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
                        strBuffer.toString());
            } else {
                Log.i(TAG, "default IME from IMEFeatureOption is null!!");
            }
请将默认的初始化部分code删除,即将 下面的code都删除掉。
 Log.i(TAG, "defaultIME : " + defaultIME);
            if (defaultIME != null) {
                StringBuffer strBuffer = new StringBuffer(defaultIME);
                int lastDotPos = defaultIME.lastIndexOf(".");
                String strInsert = "/";
                strBuffer.insert(lastDotPos, strInsert);
                loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
                        strBuffer.toString());
            } else {
                Log.i(TAG, "default IME from IMEFeatureOption is null!!");
            }
然后在删除的后面添加
  loadSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
   "com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME"); //这里修该默认enable的输入法

loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
   "com.google.andr
oid.inputmethod.latin/com.android.inputmethod.latin.LatinIME");//这里修改默认选中的输入法


Android 如何修改默认输入法的更多相关文章

  1. Android 9.0 默认输入法的设置流程分析

    Android 输入法设置文章 Android 9.0 默认输入法的设置流程分析 Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘) 前言 在上一篇文章  Android 9.0 ...

  2. android修改默认输入法

    方案一:adb命令设置?方案2:系统配置:方案3:调用系统API接口设置---------------------------adb shell cmdadb rootadb remountadb p ...

  3. android平台修改默认语言的那点事

    转自:https://blog.csdn.net/qinghua0706/article/details/8243858 最近开始做智能机,用的是展讯6820平台,第一个需求就是改默认语言,一般碰到不 ...

  4. Android 获取系统默认输入法

    import android.provider.Settings; import android.text.TextUtils; 获取默认输入法包名: private String getDefaul ...

  5. Android 如何修改默认的searchable items。

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  6. Android Studio修改默认Activity继承AppCompatActivity

    在Android Studio中新建Activity默认继承AppCompatActivity,感觉这点十分不爽,找了很久,终于发现在android Studio安装目录下有个模板文件,修改其中的参数 ...

  7. Android Studio修改默认Activity继承AppCompatActivity(转)

    在Android Studio中新建Activity默认继承AppCompatActivity,感觉这点十分不爽,找了很久,终于发现在Android Studio安装目录下有个模板文件,修改其中的参数 ...

  8. Android Studio修改默认字体大小

    安装Android Studio后,默认的字体很小,看着很不舒服,如下图 因此,我们需要改变字体大小,步骤如下: 一.打开设置 二.找到Font,这里系统的主题不能修改,我们点击Save As... ...

  9. Android默认输入法语言的修改以及SettingsProvider作用

    Android源码中默认的有三种输入法:英文,中文,日文.对应的工程代码路径为:<android_root>/packages/inputmethods/LatinIME/<andr ...

随机推荐

  1. 转Google Protocol Buffer 的使用和原理

    Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它 ...

  2. 【WIN10】文本圖標

    在Storyboard動畫板中,我使用文本顯示了一個“心”形.在這裡,我將介紹一下文本圖標. 1.Segoe MDL2 Assets 首先,它必須使用字體:Segoe MDL2 Assets 其次,它 ...

  3. 阿里云无法远程连接数据库MySQL错误码10060解决办法

    使用图形界面管理工具Navicat for MySQL连接Mysql数据库时提示错误:Can't connect to MySQL server (10060) 导致些问题可能有以下几个原因: 1.网 ...

  4. windows下整数溢出分析

    0x00前言 整数溢出就是往存储整数的内存单位存放的数据大于该内存单位所能存储的最大值,整数溢出有时候间接导致缓冲区溢出.如JPEG溢出漏洞(MS04-028). 0x01整数溢出分类 整数溢出可以分 ...

  5. 批量将Java源代码文件的编码从GBK转为UTF-8

    主要参考: http://blog.csdn.net/liu_qiqi/article/details/38706497 使用common io批量将java编码从GBK转UTF-8 http://w ...

  6. 【HDU】2866:Special Prime【数论】

    Special Prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  7. android WebView中js的alert()失效

    WebView的设置代码 wv = (WebView) findViewById(R.id.webView1); wv.getSettings().setJavaScriptEnabled(true) ...

  8. Android字体简述

    Android是一个典型的Linux内核的操作系统.在Android系统中,主要有DroidSans和DroidSerif两大字体阵营,从名字就可以看出来,前者是无衬线字体,后者是衬线字体.具体来说, ...

  9. Linux线程 之 线程 线程组 进程 轻量级进程(LWP) -systemtap -mysql

    http://blog.chinaunix.net/uid-24774106-id-3650136.html http://blog.itpub.net/15480802/viewspace-7627 ...

  10. PyQt5 各种菜单实现

    # -*- coding: utf-8 -*- # Created by PCITZDF on 2018/4/8 15:36. # FileName: menuandtools.py import s ...