在android search dialog或widget上加入语音搜索(Voice Search)

今天看到别人家的搜索栏上都有语音搜索,想来也算一种规范,遂准备在自己的搜索上也加一个。看了文档之后发现,不是一般的简单啊。

官方关于search及相关function配置地址:http://developer.android.com/guide/topics/search/search-dialog.html

其中,关于Voice Search这段,仅需在现有的searchable中加入:

android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" >

譬如:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/search_label"
    android:hint="@string/search_hint"
    android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" >
</searchable>

showVoiceSearchButton 用来enbale voice search,launchRecognizer, 用来表明voice search按钮应该启动一个返回文本的recognizer。

    关于voice search还有一些属性,参考官方文档:http://developer.android.com/guide/topics/search/searchable-config.html

    这里简单说下:

    基本语法规则:

android:voiceSearchMode=["showVoiceSearchButton" | "launchWebSearch" | "launchRecognizer"]
    android:voiceLanguageModel=["free-form" | "web_search"]
    android:voicePromptText="string resource"
    android:voiceLanguage="string"
    android:voiceMaxResults="int"
  • android:voiceSearchMode(上文中加入的那句):

    • Keyword(必须的,用来提供语音搜索功能),属性值可以是:

      • "showVoiceSearchButton": 显示语音搜索按钮。如果语音搜索在设备上是可以使用的,那么,"launchWebSearch"或"launchWebSearch"必须有一个被设置(使用 | 分隔)

      • "launchWebSearch": 直接导向内置的语音网页搜索的activity,一般情况下我们不使用这个,因为这会离开我们的应用

      • "launchRecognizer" : 直接导向内置的语音录音activity,此activity提示用户说话,将用户的语音转换成文本,然后导向我们自己定义的searchable activity

  • android:voiceLanguageModel: 

    • "free_form" : 检测query

    • "web_search":较短的,像search的段落,使用的language范围比free-form广

  • android:voicePromptText: 显示在voice input dialog的消息

  • android:voiceLanguage:期望的语音语言

  • android:voiceMaxResults:最多返回结果数



你可能感兴趣的:(在android search dialog或widget上加入语音搜索(Voice Search))