Skip to content

OEM 关联启动

小米 (MIUI / HyperOS)、华为 (EMUI / HarmonyOS)、OPPO (ColorOS)、vivo (OriginOS / FuntouchOS)、荣耀、realme 等国产定制 ROM 上,系统默认会阻止应用通过 bindService 等方式启动其他应用的进程,称为「关联启动」或「自启动」管控。

影响

若主程序无法启动插件进程,插件中的输入方案在主程序中 将不会显示,即使插件 APK 已正确安装。

症状

  • 安装了 Rime 或 chinese-addons 插件 APK,但主程序「添加输入法」列表里没有相应方案
  • 之前可用,重启手机后又不可用
  • 切换输入法时偶发崩溃或卡顿

解决方法

必须为两个应用同时开启

  • Fcitx5 主程序
  • 每一个已安装的 Fcitx5 插件(Rime / chinese-addons / 五笔 / ……)

小米 (MIUI / HyperOS)

  1. 设置 → 应用设置 → 应用管理 → Fcitx5
  2. 权限管理 → 自启动:开启
  3. 省电策略:选择「无限制」
  4. 同样操作每一个 Fcitx5 插件

华为 (EMUI / HarmonyOS)

  1. 设置 → 应用和服务 → 应用启动管理
  2. 找到 Fcitx5 主程序,关闭「自动管理」
  3. 在弹出的对话框中勾选「允许自启动」、「允许关联启动」、「允许后台活动」
  4. 同样操作每一个 Fcitx5 插件

OPPO (ColorOS)

  1. 设置 → 电池 → 应用电量管理
  2. 找到 Fcitx5 主程序,关闭「智能控制后台活动」
  3. 设置 → 隐私 → 启动管理:允许 Fcitx5 自启动
  4. 同样操作每一个 Fcitx5 插件

vivo (OriginOS / FuntouchOS)

  1. i 管家 → 应用管理 → 自启动管理
  2. 开启 Fcitx5 主程序 与 所有插件 的开关
  3. 设置 → 电池 → 后台高耗电 中允许其后台活动

一加 / 荣耀 / realme 等

机制大同小异,关键词:自启动后台活动关联启动省电策略 → 无限制

验证是否生效

  1. 设置完成后,重启手机(重要)
  2. 打开 Fcitx5 主程序
  3. 配置 → 全局选项 → 输入法 → 添加 中应能看到插件提供的方案

原理说明(可选阅读)

Fcitx5 主程序通过 Android 的 bindService 与每个插件中的 IPC 服务通信,注册插件提供的方案到主程序的方案列表。国产 ROM 的关联启动管控会拦截这一 bindService 调用,使得插件中的 ContentProvider / Service 永远不会被实例化,主程序也就无法识别其方案。

授予「自启动 / 关联启动」权限后,bindService 才能跨进程成功唤起插件,方案才会注册。

仍然不行?

请到 反馈问题 提交 issue,并附上:

  • ROM 名称与版本(如 MIUI 14、HarmonyOS 4.0)
  • 已安装的 Fcitx5 主程序与插件版本
  • 已为哪些应用开启了哪些权限
  • 是否重启过设备

本项目基于 fcitx5-android/fcitx5-android 修改。源码与文档以 LGPL-2.1 发布。