java 切换系统输入法_系统语言改变时,输入法变成默认输入法分析
当系统的语言改变时,选择的输入法会变成默认输入法:
实现的过程在:InputMethodManagerService.java中的:
mContext.registerReceiver(// 这里对语言改变广播的监听。
new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
synchronized(mMethodMap) {
checkCurrentLocaleChangedLocked();//当接收到语言改变发送的广播时执行方法
}
}
}, filter);
在checkCurrentLocaleChangedLocked()方法中:
有个updateFromSettingsLocked()方法
updateFromSettingsLocked()这个方法:
void updateFromSettingsLocked() {
// We are assuming that whoever is changing DEFAULT_INPUT_METHOD and
// ENABLED_INPUT_METHODS is taking care of keeping them correctly in
// sync, so we will never have a DEFAULT_INPUT_METHOD that is not
// enabled.
String id = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD);//获取默认输入法
// There is no input method selected, try to choose new applicable input method.
if (TextUtils.isEmpty(id) && chooseNewDefaultIMELocked()) {
id = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD);
}
if (!TextUtils.isEmpty(id)) {
try {
setInputMethodLocked(id, getSelectedInputMethodSubtypeId(id));//设置当前输入法为默认输入法。
} catch (IllegalArgumentException e) {
Slog.w(TAG, "Unknown input method from prefs: " + id, e);
mCurMethodId = null;
unbindCurrentMethodLocked(true);
}
mShortcutInputMethodsAndSubtypes.clear();
} else {
// There is no longer an input method set, so stop any current one.
mCurMethodId = null;
unbindCurrentMethodLocked(true);
}
}
java 切换系统输入法_系统语言改变时,输入法变成默认输入法分析相关推荐
- Android 12.0 系统多个播放器app时,设置默认播放器
目录 1.概述 2.系统多个播放器app时,设置默认播放器的核心类
- 计算机输入模式,如何设置输入法,教您如何设置计算机的默认输入法
对于许多朋友来说怎么设置电脑的语言,他们在使用计算机时肯定会使用输入法,默认的美式键盘输入法只能输入拼音. 每次键入时切换都非常麻烦. 将常用输入法设置为默认输入法非常方便,那么如何设置输入法呢?下面 ...
- html5鼠标移过切换图片,鼠标移动到图片上切换到另一张图片,移出时又切默认图片...
HTML写法: JS写法:var img = document.createElement("img"); img.setAttribute("src",&qu ...
- java后端框架选型_后端语言选型浅谈
前不久回答了一个关于后端语言选型的问题,写的回答也让笔者有了很多感触,因此在这里谈论下自己对后端语言选型的心得体会,姑且算是抛砖引玉,希望大家能分享各自的心得. 后端语言发展历史 Web 后端语言的兴 ...
- 4g内存电脑装xp系统怎么样_系统坏了?去店了重装系统又贵?今天手把手教你如何重装系统...
估计很多人电脑的系统坏了,第一时间就是去店了重装系统,价钱一般50以上.小编有一个朋友,就是电脑系统坏了,去店里重装系统要70块钱,然后我朋友说50块钱可不可以,店员立马说:"No prob ...
- java无ide编译_[转]无IDE时编译和运行Java
本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近Java subreddit出现了一篇"在没有IDE的情况下编译Java包 ...
- 输入法智能联想 Java_[Android6.0][MTK6737] 修改默认输入法为 Sogou
title: [Android6.0][MTK6737] 修改默认输入法为 Sogou tags: grammar_cjkRuby: true Hardware:MT6737 DeviceOS:And ...
- android5.1默认输入法,android 5.1.1 下修改出厂默认输入法
1. 需要提前将用到的默认输入法(.apk)内置到系统中 2.将系统中所有的输入法设置为可用,修改 frameworks/base/core/Java/com/Android/internal/inp ...
- java jvm dump文件_系统宕机时如何让JVM生成javacore和heapdump文件-Dump文件
当系统宕机,我们需要分析系统宕机原因,除了日志还有两个非常关键的文件可以帮助我们快速找到问题,这两个文件就是javacore和heapdump. javacore:是 Java 提供的一种诊断特性,能 ...
最新文章
- Django-admin管理工具
- 七十三、从三数之和探究双指针思想
- 使用ToolRunner运行Hadoop程序基本原理分析
- IntelliJ IDEA 配置文件位置
- optimize table 需要多久_吉林市政工程资质新办需要多久
- *【CodeForces - 122C 】Lucky Sum (bfs记录状态,二分查找,有坑)(或分块)
- lambda表达式创建一条最简单的线程
- centos 计算器_centos计算内存CPU正确方法
- SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
- delphi 通过句柄获取exe文本框内容_实战经验:通过NotifyAddrChange侦测网络变化
- centos x86-64位版本 想安装qq for linux
- Ubuntu17.10下安装TIM
- 电商产品销售管理后台ui模板
- 关于matlab的erf与erfc
- android微信视频自动播放,Android微信内网页音频自动播放能力调整
- Tilera 服务器上hadoop单机版测试
- ESP8266-D1 mini-V2 认识
- 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进
- Quartus II 13.1的安装与注册
- MATLAB导入txt和excel文件技巧汇总
热门文章
- 简易水下航行器舵控arduino,蓝牙通讯
- 破解版XMind图文安装教程
- “智慧统计”平台研发
- 《神雕侠侣》古墓派玉女功养生修炼
- MAC电脑DNS劫持解决方法
- http://nxlhero.blog.51cto.com/962631/1666250?plg_nld=1plg_uin=1plg_auth=1plg_nld=1plg_usr=1plg_...
- 【JavaScript】DOM 操作元素样式和元素类名
- 字母使用频率统计c 语言编程,统计字母的使用频率c语言实现.doc
- SMS短信解码举例(一)
- 微信删除的聊天记录怎么恢复,教你两个方法