Android 中的此功能由拼写检查框架提供。它的documentation here 和here 展示了如何连接到它并在应用程序内与它的建议进行交互。
因为这是系统提供的一项服务,很像定位服务之类的服务,所以没有办法在不被 root 的情况下在系统范围内挂钩。我没有任何修改 Android 系统或其服务的内部工作的个人经验,但作为起点,您可以查看任何篡改其中一些服务的输入/输出的开源应用程序,例如GPS 欺骗应用。
最坏的情况是您必须找到 Spell Checker Framework 编译和存储的位置,然后用修改后的版本覆盖它。
我能够从 Android 5.1.1 中找到旧版本的 SpellCheckerService.java here。您或许可以对此进行调查并弄清楚您需要做什么以及在哪里做。
编辑:在查看了 1149 个 Android 源代码库 (100+ GB) 的整个列表后,我找到了两个最有可能让您寻找空缺的候选人。
git clone https://android.googlesource.com/platform/frameworks/base
git clone https://android.googlesource.com/platform/packages/inputmethods/LatinIME
在 base 中,您会在 base/core/java/android/****/textservice/ 中找到 SpellChecker 源,其中 **** 是 service、view、widget 或 internal 之一(内部位于 com/android 中)。这似乎是最低水平。这里的很多方法等等都是abstract。
在 LatinIME 中,您会找到用于拉丁字符集的更高级别的 SpellChecker 源(对于其他字符集还有其他存储库)。您可以在LatinIME/java/src/com/android/inputmethod/latin/spellcheck/ 中找到它们。在这里您可以找到实现。
在跟踪源(特别是跟踪getSuggestionResults)之后,调用会下降到Dictionary 级别。 LatinIME/java/src/com/android/inputmethod/latin/Dictionary.java 有 abstract public ArrayList<SuggestedWordInfo> getSuggestions(),这意味着返回结果是 Dictionary 的责任。不过,我会假设用户可安装的字典只是一个简单的数据库,供 Android 系统的 Dictionary 处理代码使用,这可能意味着您仍然需要修改系统代码并扎根才能实现目标。
恐怕在我谈到这个主题时,这已经离兔子洞很远了。恐怕我还没有完全回答这个问题,但这应该会给你一些关于你想如何继续的方向。
另一个编辑:也许我对可安装字典只是一个数据库的看法是错误的。 See this example。这个例子似乎是应用程序的形式,所以我不确定。