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

Android多语言环境下如何为应用操作配置多触发短语?

Android多语言环境下如何为应用操作配置多触发短语?

嘿,看起来你正在给你的工时表应用做多语言的语音触发配置,这个需求真的很贴心!我来一步步帮你搞定:

第一步:搞定触发短语的本地化存储

要让不同语言的用户说出对应短语都能触发操作,首先得把这些短语按语言存到本地化资源里:

  • 在你的项目res目录下,为需要支持的语言创建对应的values-xx文件夹,比如values-zh-rCN对应简体中文、values-es对应西班牙语。
  • 每个语言文件夹里创建strings.xml,把触发短语对应翻译好。比如:
    默认英语的res/values/strings.xml:
    <resources>
        <string name="voice_cmd_clock_in">clock-in</string>
        <string name="voice_cmd_clock_in_timesheet">clock-in with timesheet</string>
        <string name="voice_cmd_start_work">start work</string>
    </resources>
    
    简体中文的res/values-zh-rCN/strings.xml:
    <resources>
        <string name="voice_cmd_clock_in">打卡</string>
        <string name="voice_cmd_clock_in_timesheet">打开工时表打卡</string>
        <string name="voice_cmd_start_work">开始工作</string>
    </resources>
    
    系统会根据用户的设备语言自动加载对应的短语。

第二步:补全Intent Filter并关联语音触发

你之前的Intent Filter没写完,先把它补全,用来处理自定义URL跳转:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <!-- 必须添加这两个category才能让外部调用生效 -->
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- 定义你的自定义URL协议,比如用timesheetapp://clockin作为触发地址 -->
    <data android:scheme="timesheetapp" android:host="clockin" />
</intent-filter>

接下来要把语音助手和这个Intent关联起来,通过App Actions实现:

  • 在res/xml目录下创建actions.xml,引用咱们本地化好的短语作为触发词:
<actions>
    <action intentName="android.intent.action.VIEW">
        <!-- 对应咱们定义的自定义URL -->
        <parameter
            android:name="url"
            android:value="timesheetapp://clockin" />
        <fulfillment
            android:url="timesheetapp://clockin" />
        <!-- 这里直接引用本地化的触发短语,自动适配语言 -->
        <queryPatterns>
            <queryPattern android:pattern="@string/voice_cmd_clock_in" />
            <queryPattern android:pattern="@string/voice_cmd_clock_in_timesheet" />
            <queryPattern android:pattern="@string/voice_cmd_start_work" />
        </queryPatterns>
    </action>
</actions>
  • 最后在AndroidManifest.xml的<application>标签里声明这个配置文件,让系统识别:
<meta-data
    android:name="android.app.actions"
    android:resource="@xml/actions" />

最后测试和小提醒

  • 测试时切换设备的系统语言,用对应语言说出触发短语,看看是否能成功唤起你的应用并触发打卡操作。
  • 不同语音助手(比如Google Assistant、小爱同学)的适配细节可能略有不同,但核心的本地化思路是一致的——把短语按语言存在资源文件里。如果是第三方助手,可能需要去对应平台额外配置,但基础逻辑不变。

备注:内容来源于stack exchange,提问作者Robin Dijkhof

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:04:36