加入语音处理能力(Adding Voice Capabilities)
语音操作为用户体验可穿戴的重要组成部分,它允许用户快速、免提方式来运行操作。
Wear它提供了两种类型的语音操作的:
该系统提供(System-provided)
这些语音操作是基于任务的,且内置于Wear平台。
语音命令到达时。在你想启动的活动(Activity)中进行动作过滤。
比方“记一下”(Take a note)或“提醒一下”(Set an alarm)。
应用提供(App-provided)
这些语音操作是基于APP的,声明方式和启动图标一样。
用户说“開始”(Start)来使用这些语音操作以及一个你指定的活动。
声明系统提供的语音操作
Android Wear平台提供了一些基于用户动作的语音意图(voice intents)。比方上述“记一下”或“提醒一下”。这让用户仅仅须要说出自己想要做的操作。而由系统来确定该启动哪个活动来响应。
当用户发出语音指令时,你的应用程序能够对此意图进行侦听和过滤。这样合适的应用将被该语音意图(intent)所启动。
假设你想启动一个后台服务。以可见提示的方式显示一个活动,然后在活动启动服务。
当你想摆脱这个可见提示时。确保调用finish()函数。
比方,对于"Take a note"命令,声明例如以下的意图过滤器(intent filter)来启动一个名叫MyNoteActivity的活动:
<activity android:name="MyNoteActivity">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="com.google.android.voicesearch.SELF_NOTE" />
</intent-filter>
</activity>
以下是Wear平台所支持的语音意图(voice intents)列表:
声明应用提供的语音操作
假设上述系统语音意图都不能满足你的要求,你能够用“Start MyActivityName”的语音指令来直接启动你的应用。注冊一个“Start”操作和在手机应用上注冊一个启动图标相似。
想指定“Start”命令后面的文本參数。须要给对应活动指定一个label属性。
比方,以下这个意图过滤器将识别"Start MyRunningApp"语音操作并启动StartRunActivity。
<application>
<activity android:name="StartRunActivity" android:label="MyRunningApp">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
获取Free-form语音输入
为了能使用语音操作来启动活动,你还能够调用系统内置的语音识别活动(Speech Recognizer activity)来获取用户的语音输入。
这对于语音识别和兴许处理是有帮助的,比方运行一个搜索或者发送语音消息。
在应用中,你能够使用ACTION_RECOGNIZE_SPEECH动作来调用startActivityForResult()函数。
这将启动该活动并能够在onActivityResult()中处理语音识别结果。
參考链接: