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平台,第一个需求就是改默认语言,一般碰到不 ...
随机推荐
- JAVA记录-异常基本概念
1.异常分类 2.错误和异常的区别 3.try-catch-xxx处理方式 Java Exception:1.Error 2.Runtime Exception 运行时异常3.Exception 4. ...
- Spring+quartz 实现定时任务job集群配置【原】
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
- 【1】【JUC】JDK1.8源码分析之ArrayBlockingQueue,LinkedBlockingQueue
概要: ArrayBlockingQueue的内部是通过一个可重入锁ReentrantLock和两个Condition条件对象来实现阻塞 注意这两个Condition即ReentrantLock的Co ...
- 源码分析之CountDownLatch
https://www.cnblogs.com/leesf456/p/5406191.html
- 关闭MySQL数据库的几种方法
#1.使用mysqldadmin mysqladmin -uroot -p shutdown mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/$ ...
- 工控安全入门之Modbus(转载)
工控安全这个领域比较封闭,公开的资料很少.我在读<Hacking Exposed Industrial Control Systems>,一本16年的书,选了的部分章节进行翻译,以其抛砖引 ...
- bzoj4802 欧拉函数(附Millar-Rabin和Pollard-Rho讲解)
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4802 [题解] 参考:http://www.matrix67.com/blog/archiv ...
- C# 简单线程实例
1.简单线程实例 以及委托(同步委托.异步委托) using System; using System.Collections.Generic; using System.Linq; using Sy ...
- 第15月第6天 ios UIScrollView不能响应TouchesBegin
1. 1:@property MyScrollView *scrollView; 2:给MyScrollView,增加类别:MyScrollView+Touch 3:在类别里实现下面三个方法: @im ...
- 虚方法virtual、抽象方法abstract、接口interface区别
接口.抽象类.抽象方法.虚方法: 这四个名词时非常容易混淆的: 首先说一下接口 与抽象类 的异同: 相同点: 1.他们都不能实例化自己,也就是说都是用来被继承的. 2.抽象类中的抽象方法和接口方法一样 ...