方案一:adb命令设置?
方案2:系统配置;
方案3:调用系统API接口设置
---------------------------
adb shell cmd
adb root
adb remount
adb push xx.apk /system/app  
---------------------------

#Android键盘(AOSP) ~ 系统默认
com.android.inputmethod.latin/.LatinIME

#谷歌拼音输入法
com.google.android.inputmethod.pinyin/.PinyinIME

#谷歌Gboard输入法
com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME

#触宝输入法国际版
com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME

#Go 输入法
com.jb.emoji.gokeyboard/com.jb.gokeyboard.GoKeyboard

#SwiftKey Keyboard 输入法
com.touchtype.swiftkey/com.touchtype.KeyboardService

#搜狗输入法:
com.sohu.inputmethod.sogou/.SogouIME

#微软必应输入法
com.bingime.ime/.BingIme

---------------------------
#显示系统安装的输入法列表
adb shell ime list -s

#获取系统默认输入法
adb shell settings get secure default_input_method

#设置系统默认输入法
adb shell settings put secure default_input_method com.touchtype.swiftkey/com.touchtype.KeyboardService

示例:

设置输入法为默认输入法

adb shell settings put secure default_input_method com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME

adb shell settings put secure default_input_method com.jb.emoji.gokeyboard/com.jb.gokeyboard.GoKeyboard

adb shell settings put secure default_input_method com.touchtype.swiftkey/com.touchtype.KeyboardService

adb shell settings put secure default_input_method com.sohu.inputmethod.sogou/.SogouIME

adb shell settings put secure default_input_method com.bingime.ime/.BingIme

---------------------------
关于国际化的输入法:(一个输入法apk可以同时满足中英日韩等不同国家语言文字输入

就目前测试了一圈,比较好用的有:

  • 触宝输入法国际版
  • Go 输入法
  • SwiftKey  // 被微软收购的

另外还有Swype(华为手机预置的输入法,现在已不再更新了)

其他:
Swype输入法 --安装后点击桌面相应图标后启用该输入法,下载中文、日文等语言包

SwiftKey 输入法支持的国家语言(中日韩英等……)
https://support.swiftkey.com/hc/en-us/articles/201598431-What-languages-are-currently-supported-for-SwiftKey-on-Android-

触宝输入法国际版 --有广告?
必应输入法 ? ---经过实验,发现必应输入法无法输入日语等,放弃!
---------------------------

代码实现输入法默认设置:

import android.provider.Settings;//导入包
// compile 'com.jakewharton.timber:timber:2.7.1' public class InputMethodUtil {
/**
* 若触宝输入法已安装,则设其为系统默认输入法
* (写入Android系统数据库)
*/
public static void setDefaultInputMethod(Context context) {
//获取系统已安装的输入法ID
String[] methods = getInputMethodIdList(context);
if (methods == null || methods.length == 0) {
Timber.w(String.format("found no input method."));
return;
} //检查是否安装触宝输入法
//触宝输入法ID "com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME";
String targetKeyword = "TouchPal";
String value = "";
for (String m : methods){
Timber.d(String.format("find : %s", m));
if (m.toLowerCase().contains(targetKeyword.toLowerCase())){
value = m;//找到触宝输入法
}
}
if (value == "") {
Timber.w(String.format("didn't find " + targetKeyword));
return;
} //设置默认输入法
String key = Settings.Secure.DEFAULT_INPUT_METHOD;
boolean success = Settings.Secure.putString(context.getContentResolver(), key, value);
Timber.d(String.format("writeDbDefaultInputMethod(%s),result: %s", value,success)); //读取默认输入法
String current = Settings.Secure.getString(context.getContentResolver(),key);
Timber.d(String.format("current default: %s",current));
} /**
* 获取系统已安装的输入法ID
* @param context
* @return
*/
public static String[] getInputMethodIdList(Context context) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null && imm.getInputMethodList() != null) {
String[] methodIds = new String[imm.getInputMethodList().size()];
for (int i = 0; i <imm.getInputMethodList().size(); i++) {
methodIds[i] = imm.getInputMethodList().get(i).getId();
}
return methodIds;
}
return new String[]{};
}
}

ref:

Enabling third party input methods in Android on Chrome OS
https://nolirium.blogspot.com/2017/08/enabling-third-party-input-methods-in.html

android修改默认输入法的更多相关文章

  1. Android系统默认输入法的修改为搜狗输入法

    1.  frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中修改默认输入法为搜狗输入法 <stringnam ...

  2. Android 如何修改默认输入法

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

  3. Android修改默认SharedPreferences文件的路径,SharedPreferences常用工具类

    import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; ...

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

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

  5. ADB命令后台修改系统默认输入法

    今天要研究uiautomator如何输入中文,看网上有一种常用的解决办法:http://www.cnblogs.com/yajing-zh/p/5125387.html在这篇博客最后提出来的问题,也是 ...

  6. Android EditText默认不弹出输入法,以及获取光标,修改输入法Enter键的方法

    一.Android EditText默认不弹出输入法的办法:1. 在AndroidManifest.xml中将需要默认隐藏键盘的Activity中添加属性即可(常用此方法) android:windo ...

  7. Android 系统默认参数的修改

    转自: http://www.th7.cn/Program/Android/201505/447097.shtml 写在前面的话 一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置, ...

  8. Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘)

    前言 在一些Android项目中往往需要预置第三方输入法或自己的输入法,这篇文章就简单讲解如何预置第三方输入法apk及设置默认输入法 结果展示 在介绍基本的调整方法前,先看看效果图, 如下 调整方法 ...

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

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

随机推荐

  1. javascript 获取节点元素的封装

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. POJ - 3122 Pie(二分)

    http://poj.org/problem?id=3122 题意 主人过生日,m个人来庆生,有n块派,m+1个人(还有主人自己)分,问每个人分到的最大体积的派是多大,PS每 个人所分的派必须是在同一 ...

  3. Java编程思想 学习笔记12

    十二.通过异常处理错误  Java的基本理念是“结构不佳的代码不能运行”. Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型.可靠的程序的生成,并且通过这种方式可以使你更加自信:你的 ...

  4. android ListView 分页加载数据

    1.mainActivity <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  5. Linux监控工具Spotlight on Unix

    1.介绍 Spotlight on Unix是一款Linux系统运行状况的监控工具,可以安装在Windows下,监控Linux服务器的运行状况. 监控项目包括:CPU.内存.交换空间.虚拟内存等的使用 ...

  6. mysql 架构 ~ binlog_server

    一 简介 mysql binlog server 二 目的 实时备份线上的binlog 利用备份+binlog进行任何时间点的恢复 三  详细信息    1 基本命令 /usr/local/mysql ...

  7. malloc()函数(Linux程序员手册)及函数的正确使用【转】

    转自:https://blog.csdn.net/david_xtd/article/details/7311204 名称 malloc,free,calloc,realloc--分配和释放动态内存 ...

  8. linux源码Makefile详解(完整)

    转自:http://www.cnblogs.com/Daniel-G/p/3286614.html 随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 ...

  9. pyspider使用

    #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2018-11-08 22:33:55 # Project: qsbk fro ...

  10. mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化

    可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...