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平台,第一个需求就是改默认语言,一般碰到不 ...
随机推荐
- DBA记录-数据库管理员需要掌握的内容
1.Linux 2.ORACLE/MySQL/SQLSERVER 3.NOSQL 4.环境部署.用户及权限管理.表空间.表.视图.索引.过程.触发器.分区.函数.查询.性能调优.迁移备份.集群.日志分 ...
- authentication failed for xxx错误
现象: 公司windows定期修改过密码后 一直报错.push的时候显示“Authentication Failed for http://x.x.x.x/x/git” 猜想: 发现可能是账号问题. ...
- SQL语句(三)数据表的修改
数据表的修改 1. 创建实验表people people CREATE TABLE people ( name ), gender ), birthday ) ) 2.修改表 ALTER TABLE ...
- cdh-5.10.0搭建安装
1.修改主机名为master, slave1, slave2 vim /etc/sysconfig/network HOSTNAME = master HOSTNAME = slave1 HOSTNA ...
- CSS魔法(三)浮动、相对定位、绝对定位
浮动 为何需要浮动? 浮动float最开始出现的意义是为了让文字环绕图片而已,但人们发现,如果想要三个块级元素并排显示,都给它们加个float来得会比较方便. 浮动问题? 为何要清除浮动? 很多情况下 ...
- tarjan,树剖,倍增求lca
1.tarjan求lca 思想: void tarjan(int u,int f){ for(int i=---){//枚举边 if(v==f) continue; dfs(v); //继续搜 uni ...
- jenkins配置sonarqube
jenkins配置sonarqube 下载插件SonarQube Scanner for Jenkins 在系统管理系统设置中选择 SonarQube servers 配置服务器名称.访问URL地址, ...
- Spring源码解读
beanfactory https://www.cnblogs.com/lspz/p/6244948.html requestmapping https://blog.csdn.net/u012557 ...
- DSO windowed optimization 代码 (1)
这里不想解释怎么 marginalize,什么是 First-Estimates Jacobian (FEJ).这里只看看代码,看看Hessian矩阵是怎么构造出来的. 1 优化流程 整个优化过程,也 ...
- SSD win7优化步骤
随着固态硬盘价格不断下降,目前固态硬盘也得到了广泛了应用,一些新笔记本以及组装电脑也开始普遍采用固态硬盘平台,超级本就更不用说了,采用固态硬盘已经成标配化,虽然固态硬盘速度很快,但不懂的优化,依然无法 ...