android - 如何在任何应用程序中替换输入的字符?

标签 android input proxy textedit

我的目标/问题: 我想编写允许用户将输入文本中的一些字符替换为另一个的 android 应用程序。此应用程序应适用于所有现有应用程序。

例子: 当我写短信时,我希望有可能将所有波兰变音符号替换为它们的等价物(ó 到 o、ż 到 z、ś 到 s 等等)。 我的解决方案:

较差但可行:

  • 我在我的应用程序中编写文本,然后复制文本并粘贴到短信应用程序中。但由于这种复制,很不方便。

  • 我已经在目标应用程序中写入了文本,将所有文本复制到剪贴板并将其粘贴回去。我有在后台运行的应用程序来处理更改此文本的剪贴板。也很不方便。

更好,但我不确定是否可能:

  • 我为 InputMethodService 编写了某种代理,当用户使用带有此代理的软件键盘输入文本时,他会返回修改后的文本。是否可以这样写?

最佳:

  • 我向 TextView 对象添加了一些选项。当我长按任何 TextView 时,我得到允许选择 InputMethod(更改软件键盘)和编辑文本(复制、标记、粘贴等)的菜单。有没有办法将我的选项说“替换字符”添加到此菜单?

同样,我不希望它只在我的应用程序中工作,而是在所有已安装的应用程序中工作。

最佳答案

您应该编写自己的键盘。检查 SDK 附带的 SoftKeyboard 示例的示例。用户随后可以启用您的键盘并将能够在所有应用中使用它。

关于android - 如何在任何应用程序中替换输入的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16917601/

相关文章:

android - 二进制 xml 文件行错误在较低的 android 版本上膨胀底部导航 View

Android - ActionbarSherlock 样式配置应该是什么?

java - 是否可以找到附近的其他电话?

android - API 级别 29 java 中不推荐使用 Environment.getExternalStorageDirectory()

将 Docker 容器代理为子域

python - 如何在 Python 中创建对象集合代理?

c - C 有没有办法在不使用 ctrl+d 的情况下终止 scanf() 在数组中的输入?

C++ ifstream帮助(简单)

javascript - 如何获取用户创建的输入的用户文本输入的值,jQuery

tcp - 使用代理复制 TCP 流量