You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android TV遥控器语音助手开发问题:发送语音指令与自定义字符串

Android TV Google 助手操作问题解决方案

1. 让Google助手进入聆听状态

你目前用KEYCODE_SEARCH(84)唤起助手是短按操作,要让助手直接进入聆听状态,模拟长按该按键即可——Android系统中,长按搜索键默认触发助手的语音聆听模式。

如果是通过代码发送按键事件,可通过InputManager模拟长按动作:

InputManager inputManager = (InputManager) getSystemService(Context.INPUT_SERVICE);
if (inputManager != null) {
    // 构造长按搜索键的按下事件
    long downTime = SystemClock.uptimeMillis();
    KeyEvent downEvent = new KeyEvent(downTime, downTime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SEARCH, 0);
    inputManager.dispatchInputEvent(downEvent, InputManager.INPUT_EVENT_MODE_ASYNC);
    
    // 延迟发送抬起事件,模拟长按时长
    new Handler(Looper.getMainLooper()).postDelayed(() -> {
        long upTime = SystemClock.uptimeMillis();
        KeyEvent upEvent = new KeyEvent(downTime, upTime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SEARCH, 0);
        inputManager.dispatchInputEvent(upEvent, InputManager.INPUT_EVENT_MODE_ASYNC);
    }, 500); // 500ms时长可根据实际需求调整
}

2. 向Google助手发送自定义字符串

要直接给助手传入文本指令,无法通过按键事件实现,需通过Intent调用Google助手的搜索接口,将自定义字符串作为查询参数传入:

String customQuery = "打开Netflix"; // 替换为你的自定义指令文本
Intent intent = new Intent("com.google.android.googlequicksearchbox.action.SEARCH");
intent.setPackage("com.google.android.googlequicksearchbox");
intent.putExtra(SearchManager.QUERY, customQuery);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

注意:确保设备上Google助手的包名正确(通常为com.google.android.googlequicksearchbox),非Activity环境调用时必须添加FLAG_ACTIVITY_NEW_TASK标志。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:12:13