InputMethodManagerService启动-Android12
Posted xhBruce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InputMethodManagerService启动-Android12相关的知识,希望对你有一定的参考价值。
InputMethodManagerService启动-android12
android12-release
输入法支持
1、SystemServer启动InputMethodManagerService
- MULTI_CLIENT_IME_ENABLED(
即 persist.debug.multi_client_ime 或 ro.sys.multi_client_ime
)开启,启动MultiClientInputMethodManagerService服务,否则启动InputMethodManagerService服务 - 多会话输入法支持 :支持每屏幕焦点是启用此功能的前提。如果不支持,则无法启用此功能。由于安全限制,每屏幕焦点限制规定只有一小部分设备支持此功能。
t.traceBegin("StartInputMethodManagerLifecycle");
if (InputMethodSystemProperty.MULTI_CLIENT_IME_ENABLED)
mSystemServiceManager.startService(
MultiClientInputMethodManagerService.Lifecycle.class);
else
mSystemServiceManager.startService(InputMethodManagerService.Lifecycle.class);
t.traceEnd();
2、InputMethodManagerService / MultiClientInputMethodManagerService
2.1 MultiClientInputMethodManagerService
2.2 InputMethodManagerService
- 创建InputMethodManagerService服务,
publishBinderService()
并添加到dev/binder
域管理 - InputMethodManagerInternal添加到LocalServices
public Lifecycle(Context context)
super(context);
mService = new InputMethodManagerService(context);
@Override
public void onStart()
LocalServices.addService(InputMethodManagerInternal.class,
new LocalServiceImpl(mService));
publishBinderService(Context.INPUT_METHOD_SERVICE, mService, false /*allowIsolated*/,
DUMP_FLAG_PRIORITY_CRITICAL | DUMP_FLAG_PRIORITY_NORMAL | DUMP_FLAG_PROTO);
2.3 简要时序图
3. 请求显示\\隐藏输入法
- 请求显示
showSoftInput()
- 请求隐藏
hideSoftInputFromWindow()
以上是关于InputMethodManagerService启动-Android12的主要内容,如果未能解决你的问题,请参考以下文章
InputMethodManagerService启动-Android12
android开发浅谈之InputMethodManagerService
android开发浅谈之InputMethodManagerService
android开发浅谈之InputMethodManagerService