Android:创建可穿戴应用 - 语音操作
添加语音处理能力(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()中处理语音识别结果。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。