HarmonyOS鸿蒙Next中如何用arkts程序模拟用户的中文输入

HarmonyOS鸿蒙Next中如何用arkts程序模拟用户的中文输入 现在在开发用大模型实现自动操作的程序。该程序在后台运行,前台为其它应用界面。当点开前台界面的输入框时,大模型会返回“向输入框输入’xxx’指令”(xxx为中文字符串),如何在后台程序中模拟真实用户的输入过程,实现将该中文字符串输入到其它前台程序的输入框中?

3 回复

【解决方案】

目前已经发布了Agent Framework Kit,Agent Framework Kit(智能体框架服务)提供了拉起指定智能体的能力。应用在小艺开放平台上线智能体后,向用户提供应用+智能体组合的服务,让用户可以在适当的场景下通过Agent Framework Kit的UI控件能力主动拉起智能体。意图框架能帮开发者将应用/元服务内的业务功能,智能分发到各系统入口,系统入口包括:小艺对话、小艺搜索、小艺建议。其中小艺对话对应的“技能调用”特征,可以帮用户完成应用或元服务的功能调用。比如用户在小艺对话中询问“向输入框输入’xxx’指令”,小艺可以理解用户的意图,调用应用或元服务模拟真实用户的输入过程并向用户呈现。

更多关于HarmonyOS鸿蒙Next中如何用arkts程序模拟用户的中文输入的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用ArkTS模拟中文输入可通过UI测试框架的UiDriver实现。调用UiDriver.inputText()方法并传入中文字符串,可直接模拟键盘输入操作。需确保目标组件已获取焦点。此方法适用于自动化测试场景,无需依赖物理键盘或软键盘。

在HarmonyOS Next中,通过ArkTS后台程序模拟中文输入到前台应用的输入框,核心在于使用AccessibilityExtensionAbility(无障碍扩展能力)和InputMethodExtensionAbility(输入法扩展能力)的组合方案。这能模拟真实用户的输入流程,而非简单的粘贴文本。

核心方案:使用输入法扩展模拟真实输入

直接通过Accessibility(无障碍服务)设置文本(如setText)可能被部分应用限制或无法触发完整的输入流程。更接近用户真实操作的方式是模拟一个“虚拟输入法”:

  1. 声明权限与配置

    • module.json5中声明ohos.permission.INPUT_METHOD_CONTROL权限。
    • 配置InputMethodExtensionAbility,使其能作为系统输入法之一。
  2. 创建InputMethodExtensionAbility

    • 继承InputMethodExtensionAbility,并实现其核心方法。你无需构建完整的UI输入键盘,只需关注文本提交。
    • 在接收到来自你主程序(或AI模型)的指令后,在onCommitText(text: string)方法中处理要输入的中文字符串。这个方法会直接将文本提交到当前聚焦的输入框,其行为与用户从键盘输入一致。
  3. 与后台主程序/大模型服务通信

    • 你的主程序(如处理AI指令的后台服务)需要通过进程间通信(如通过RPCEventHub)将需要输入的字符串xxx发送给这个InputMethodExtensionAbility
    • InputMethodExtensionAbility接收到字符串后,调用inputMethodEngine.commitText(text)提交文本。
  4. 激活并切换输入法

    • 程序需引导用户或在后台通过Accessibility服务,将当前输入法切换为你开发的这个“虚拟输入法”。这通常需要用户手动授权或在无障碍设置中启用。
    • 一旦该输入法被激活,你的后台程序即可通过上述通信机制,随时将任意中文字符串“注入”到任何前台输入框。

辅助方案:结合AccessibilityService进行自动化控制

  • 你可以同时开发一个AccessibilityExtensionAbility,用于监听前台窗口变化、识别输入框焦点事件(通过onAccessibilityEvent捕获FOCUS事件)。
  • 当检测到目标输入框获得焦点时,通知你的主服务,主服务再调用AI模型获取需要输入的指令文本。
  • 随后,主服务将文本通过上述通信方式发送给InputMethodExtensionAbility完成输入。

关键注意事项

  • 用户授权:启用无障碍服务和输入法切换涉及较高的系统权限,需要明确的用户手动授权和确认,无法在用户无感知的情况下完成。
  • 系统兼容性:此方案深度依赖HarmonyOS的扩展能力框架,需严格遵循Next的API规范。
  • 性能与响应:输入法扩展的运行效率直接影响输入体验,需确保代码轻量,通信高效。

总结,最接近真实用户输入的方案是创建一个无UI的、可编程控制的输入法扩展,将其作为文本注入的“执行末端”,再结合无障碍服务或后台主进程进行触发与控制。这避免了直接操作控件可能带来的兼容性问题,模拟了系统级的输入行为。

回到顶部