You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

自定义键盘ADV按键修改咨询:实现按下触发指定文本输入

搞定自定义ADV按键模拟SEND发送指定内容

嘿,我来帮你解决这个自定义键盘的问题!你当前的代码只是把"adventure"输入到输入框里,但并没有触发发送动作——这就是它没法像SEND按键那样直接发送内容的原因。下面是两种实用的修改方案,你可以根据需求选择:

方案一:输入文本后自动触发发送(还原SEND按键逻辑)

这种方案会先把指定文本输入到输入框,再模拟用户按下SEND按键的动作,和日常使用输入法的流程完全一致:

case 900:
    // 第一步:把预设文本输入到输入框
    CharSequence text = "adventure";
    ic.commitText(text, 1);
    
    // 第二步:触发发送动作(适配大多数应用的SEND逻辑)
    // 方式A:模拟回车键(很多聊天APP的SEND其实是回车键)
    ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
    ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER));
    
    // 如果你发现回车键不生效,可以换成方式B:触发系统IME的SEND动作
    // ic.performEditorAction(EditorInfo.IME_ACTION_SEND);
    break;

方案二:直接发送文本(跳过输入框显示)

如果不需要把文本显示在输入框里,想直接发送预设内容,你可以简化逻辑,但这种方式需要目标应用支持直接接收发送指令。不过更通用的做法还是用方案一,因为它适配绝大多数应用。

额外提醒

  • 你的XML配置<Key android:codes="900" android:keyLabel="ADV" />完全没问题,不需要修改,自定义键码900可以正常使用。
  • 确保你的输入法在AndroidManifest.xml里声明了必要的权限:
<uses-permission android:name="android.permission.INPUT_METHOD" />

内容的提问来源于stack exchange,提问作者user9226293

火山引擎 最新活动