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

Wear OS:点击Chip组件如何直接唤起键盘输入?

如何通过Chip点击直接唤起键盘,跳过RemoteInput的输入类型选择菜单?

问题描述

我有一个Chip组件,希望通过它的onClick事件唤起键盘。目前使用RemoteInput API实现,代码如下:

val intent: Intent = RemoteInputIntentHelper.createActionRemoteInputIntent()
val remoteInputs: List<RemoteInput> = listOf(
    RemoteInput
        .Builder(inputTextKey)
        .setLabel("Note")
        .wearableExtender {
            setEmojisAllowed(false)
            setInputActionType(EditorInfo.IME_ACTION_DONE)
        }
        .build()
)
RemoteInputIntentHelper.putRemoteInputsExtra(intent, remoteInputs)

搭配Chip组件使用:

Chip(
    onClick = { launcher.launch(intent) },
    ...)

该实现可以正常运行,但会先弹出一个选择输入类型的菜单(语音输入或键盘输入)。我查阅了RemoteInput的大部分文档,尝试修改API暴露的setter字段,但除了setEmojisAllowed外,其余字段似乎都不影响输入类型。请问是否有办法直接唤起键盘输入,跳过这个中间菜单?

解决方案

要跳过输入类型选择菜单直接唤起键盘,只需在wearableExtender中添加setVoiceAllowed(false),禁用语音输入选项即可。修改后的代码如下:

val intent: Intent = RemoteInputIntentHelper.createActionRemoteInputIntent()
val remoteInputs: List<RemoteInput> = listOf(
    RemoteInput
        .Builder(inputTextKey)
        .setLabel("Note")
        .wearableExtender {
            setEmojisAllowed(false)
            setInputActionType(EditorInfo.IME_ACTION_DONE)
            setVoiceAllowed(false) // 禁用语音输入选项
        }
        .build()
)
RemoteInputIntentHelper.putRemoteInputsExtra(intent, remoteInputs)

原理说明

默认情况下,Wear OS的RemoteInput会同时提供语音和键盘两种输入方式,因此会弹出选择菜单供用户选择。通过setVoiceAllowed(false)禁用语音输入后,系统只剩键盘输入这一种可选方式,就会直接打开键盘输入界面,跳过中间的选择步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:27:16