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

android开发浅谈之InputMethodManagerService

通知Android后显示活动