android修改默认输入法
方案一: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修改默认输入法的更多相关文章
- Android系统默认输入法的修改为搜狗输入法
1. frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中修改默认输入法为搜狗输入法 <stringnam ...
- Android 如何修改默认输入法
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- Android修改默认SharedPreferences文件的路径,SharedPreferences常用工具类
import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; ...
- Android默认输入法语言的修改以及SettingsProvider作用
Android源码中默认的有三种输入法:英文,中文,日文.对应的工程代码路径为:<android_root>/packages/inputmethods/LatinIME/<andr ...
- ADB命令后台修改系统默认输入法
今天要研究uiautomator如何输入中文,看网上有一种常用的解决办法:http://www.cnblogs.com/yajing-zh/p/5125387.html在这篇博客最后提出来的问题,也是 ...
- Android EditText默认不弹出输入法,以及获取光标,修改输入法Enter键的方法
一.Android EditText默认不弹出输入法的办法:1. 在AndroidManifest.xml中将需要默认隐藏键盘的Activity中添加属性即可(常用此方法) android:windo ...
- Android 系统默认参数的修改
转自: http://www.th7.cn/Program/Android/201505/447097.shtml 写在前面的话 一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置, ...
- Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘)
前言 在一些Android项目中往往需要预置第三方输入法或自己的输入法,这篇文章就简单讲解如何预置第三方输入法apk及设置默认输入法 结果展示 在介绍基本的调整方法前,先看看效果图, 如下 调整方法 ...
- android平台修改默认语言的那点事
转自:https://blog.csdn.net/qinghua0706/article/details/8243858 最近开始做智能机,用的是展讯6820平台,第一个需求就是改默认语言,一般碰到不 ...
随机推荐
- hbase记录-修改压缩格式
在业务空闲的时候修改压缩格式 先测试 ---测试表create 'test', { NAME => 'c',VERSIONS => 1}desc 'test'disable 'test'a ...
- Linux记录-CentOS配置Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- 震惊!最全PyCharm教程
PyCharm PyCharm是一个用于计算机编程的集成开发环境(IDE),主要用于Python语言开发,由捷克公司JetBrains开发,提供代码分析.图形化调试器,集成测试器.集成版本控制系统(V ...
- 浅谈cookie与session的区别
cookie用的是在客户端保持状态的方案(它是在用户端的会话状态的存贮机制),前端也可以来设置他 所有浏览器都识别,并且会缓存在浏览器中. cookie是以key=value这种键值对的形式保存,每个 ...
- python 小程序,输错三次密码锁定账户
[root@sun ~]# cat 7.py #!/usr/bin/python # -*- coding=UTF-8 -*- usera_name = 'usera' usera_passwd = ...
- Javaweb学习笔记——(六)——————xml中jaxp两种解析方式和dom4j运用
1.xml的scheam约束 dtd的语法:<!ElEMENT 元素名称 约束> **schema符合xml的语法,xml语句 **一个xml中可以有多个schema,多个schema使用 ...
- 20155319 2016-2017-2 《Java程序设计》第八周学习总结
20155319 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 NIO与NIO2 - NIO使用频道(channel)来衔接数据节点 - read()将Re ...
- Ribbon实现Office开始菜单
Ribbon实现Office开始菜单 界面效果: 首先:在主窗体上拖入popupMenu控件和imageCollection控件 然后选中popupMenu点击三角,再点击Run Designer在弹 ...
- [C++]指针与引用(定义辨析)
1.定义: 1.1 &-----取地址运算符 功能:返变量的内存地址 Eg:int *p,m; 定义p为指向int类型变量的指针,同时定义变量m ...
- 第18月第22天 机器学习first
1.网易公开课 机器学习 http://open.163.com/special/opencourse/machinelearning.html https://github.com/search ...