Android 修改输入法的输入语言
Android原生系统中,默认的输入法是“Android键盘(AOSP)”,此输入法包括55种输入语言,具体有哪一些,去看看原生系统里的就知道了,目测没有中文(不知道为啥)。
还有一种“Google语音输入”,包含78种输入语言,包括中文。
如果安装了其他的输入法,其输入语言得看输入法自身的了,比如搜狗中文就只有中文一种输入语言。
输入法操作有些是需要root权限的,比如勾选输入法等,需要的权限如下:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
下面介绍如何操作输入法。
0、取得输入法系统服务:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
1、取得所有已安装的输入法:
// 取得当前所有的输入法
List<InputMethodInfo> infos = imm.getInputMethodList();
for (InputMethodInfo info : infos)
{System.out.println("输入法包名:" + info.getPackageName());
}
我的机器上安装了搜狗输入,所以所有的输入法包名是:
com.sohu.inputmethod.sogou(此为搜狗)
com.google.android.googlequicksearchbox(此为Google语音输入)
com.android.inputmethod.latin(此为Android键盘(AOSP))
每种输入法的包名是固定的,这个操作是用来取得所有的输入法包名,以便判断系统中有哪些输入法可以使用
2、取得已经勾选的输入法,已勾选的输入法可以在系统“设置”里看到:
String enable = Settings.Secure.getString(getContentResolver(),Settings.Secure.ENABLED_INPUT_METHODS);
我的enable内容是:
com.android.inputmethod.latin/.LatinIME;-486540198;-921088104:
com.sohu.inputmethod.sogou/.SogouIME:
com.google.android.googlequicksearchbox/com.google.android.voicesearch.ime.VoiceInputMethodService
可以看到输入法与输入法之间是用:“:”,分号隔开的。
其中
com.android.inputmethod.latin/.LatinIME;-486540198;-921088104
后面的数字是此输入法已经开启的输入语言对应的数字,是一个hash值,可以通过hashCode方法得到。
以上的数字分别代表葡萄牙语和英语,其英文代码分别是:pt_PT、en_US
3、查看所有的输入法和每一个输入法的所有输入语言:
// 取得当前所有的输入法List<InputMethodInfo> infos = imm.getInputMethodList();System.out.println("\n当前输入法数量:" + infos.size());for (InputMethodInfo info : infos){System.out.println("\n输入法包名:" + info.getPackageName());int sum = info.getSubtypeCount();System.out.println("输入法子类型数量:" + sum);for (int i = 0; i < sum; i++){// 取得输入法中包含的每一个子类型final InputMethodSubtype subtype = info.getSubtypeAt(i);// 子类型的语言环境final String locale = subtype.getLocale().toString();System.out.println("\n子类型语言环境: " + locale + " ,hashcode:"+ subtype.hashCode());}}
4、勾选输入法,也可以在勾选的同时选定输入法要开启的输入语言:
Settings.Secure.putString(getContentResolver(),Settings.Secure.ENABLED_INPUT_METHODS,"com.android.inputmethod.latin/.LatinIME;-1100561836;1494081088;1244756446;843948332;-486540198;-921088104:"+ "com.sohu.inputmethod.sogou/.SogouIME:"+ "com.google.android.googlequicksearchbox/com.google.android.voicesearch.ime.VoiceInputMethodService");
5、取得当前输入法
String currentInputmethod = Settings.Secure.getString(getContentResolver(),Settings.Secure.DEFAULT_INPUT_METHOD);
我当前的输入法是:
com.sohu.inputmethod.sogou/.SogouIME
6、如果当前输入法是系统输入法,取得系统输入法当前使用的输入语言,注意是系统输入法:
<pre name="code" class="java">String current =
Settings.Secure.getString(getContentResolver(), Settings.Secure.SELECTED_INPUT_METHOD_SUBTYPE) 我当前的系统输入法语言是:
-921088104
代表英文。
7、设置默认输入法:
Settings.Secure.putString(getContentResolver(),Settings.Secure.DEFAULT_INPUT_METHOD,"com.android.inputmethod.latin/.LatinIME");
其中
com.android.inputmethod.latin/.LatinIME
是系统输入法,如果要设置为搜狗,则为:
com.sohu.inputmethod.sogou/.SogouIME
8、设置当前输入法的输入语言,当然,得当前输入法支持该语言才行:
Settings.Secure.putInt(getContentResolver(), Settings.Secure.SELECTED_INPUT_METHOD_SUBTYPE,-921088104);
总结,以上方法已足够使用,具体使用时还是需要具体问题具体分析,根据需求去组合出自己的业务逻辑。
Android 修改输入法的输入语言相关推荐
- android 修改谷歌拼音输入法全屏时的高度
文件目录:packages/inputmethods/PinyinIME/src/com/android/inputmethod/pinyin/Environment.java /** ...
- Android AOSP输入法(LatinIME)输入流程二
一.字符输入起始: LatinIME字符输入的初始方法是LatinIME类中的onCodeInput方法: <span style="font-size:18px;"> ...
- android代码打开语言和输入法设置,Android默认输入法勾选多国语言,并默许其中一种语言...
Android默认输入法勾选多国语言,并默认其中一种语言 1.首先在设备上调整输入法 设置>语言输入法>Android键盘(AOSP),在输入语言里勾选要选择的语言,比如选"英语 ...
- Android键盘输入语言设置默认打开myanmar 缅甸语
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! loca ...
- android修改默认输入法
方案一:adb命令设置? 方案2:系统配置: 方案3:调用系统API接口设置 --------------------------- adb shell cmd adb root adb remoun ...
- android缅甸语,Android键盘输入语言设置默认打开myanmar缅甸语的步骤
不管你在学什么语言,当你觉得自己不擅长的时候,突然听到你的老师或其他人用你认为自己不擅长的语言流畅地交谈,你会感到热血沸腾,下面我们就跟着爱站技术频道小编一起来了解键盘输入语言设置默认打开myanma ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- hook 输入法 android,安卓输入法输入性能评测流程
在我们的安卓版按键率评测的自动化处理整体流程主要包括三步,模仿键入操作,实时读取输入法的反馈与数据存储,以及数据分析.整个自动化处理的流程模拟人的真实操作环境,并能通过读取输入法的实时反馈判断输入法的 ...
- android 英文语言设置字体,修改安卓ROM默认语言方法
修改安卓ROM默认语言方法 (2012-06-06 19:29:41) 标签: 安卓 默认语言 中文 手机博客 安卓Android手机的ROM目前主要有三大类: ①官方发布的正版: ②民间开发团队发布 ...
最新文章
- [linux][c语言]用socket实现简单的服务器客户端交互
- 【青少年编程】【三级】打气球游戏
- java db 10.4.13_Spring Data MongoDB 1.10.13和Mongo 3.4
- stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验
- 《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一)
- 2017蓝桥杯省赛---java---B---9(分巧克力)
- 2021年中国人力资源服务行业研究报告
- 【LeetCode】剑指 Offer 64. 求1+2+…+n
- Java编写学生类student程序_编写一个JAVA程序片断定义一个表示学生的类student.docx...
- BZOJ 2843 极地旅行社
- sicktim571操作手册_TIM中文操作手册.PDF
- java如何使用md5加密_Java中MD5加密
- NAT协议(网络地址转换协议)详解
- 中国机动渔船行业发展现状分析,生产渔船占据主导地位「图」
- 重装系统服务器网卡少了,重装系统后网卡驱动没了怎么办 网卡驱动出现故障怎么恢复...
- 【转】美国百所大学招生网专页~
- 8.5 专业的“对口” ——《逆袭大学》连载
- 浅析互联网行业套路玩法+攻略
- Low-Code is Low—— 低代码的使用
- coding码市提交代码