This lesson teaches you to

You should also read

Voice actions are an important part of the wearable experience. They let users carry
out actions hands-free and quickly. Wear provides two types of voice actions:

System-provided

These voice actions are task-based and are built
into the Wear platform. You filter for them in the activity that you want to start when the
voice action is spoken. Examples include "Take a note" or "Set an alarm".

App-provided

These voice actions are app-based, and you declare them just like a launcher icon.
Users say "Start " to use these voice actions and an activity that you specify
starts.

Declare System-provided Voice Actions

The Android Wear platform provides several voice intents that are based on user actions such
as "Take a note" or "Set an alarm". This allows users to say what they want to do and let
the system figure out the best activity to start.

When users speak the voice action, your app can filter for the intent that is fired to start
an activity. If you want to start a service to do something in the background, show an activity as
a visual cue and start the service in the activity. Make sure to call
finish() when you want to get rid of the visual cue.

For example, for the "Take a note" command, declare this intent filter to start an activity
named MyNoteActivity:

android.provider.AlarmClock.EXTRA_HOUR - an integer with the hour of
the alarm.

android.provider.AlarmClock.EXTRA_MINUTES -
an integer with the minute of the alarm

(these 2 extras are optional, either none or
both are provided)

Set timer

"Ok Google, set a timer for 10 minutes"

Action

android.intent.action.SET_TIMER

Extras

android.provider.AlarmClock.EXTRA_LENGTH - an integer in the range of
1 to 86400 (number of seconds in 24 hours) representing the length of the timer

Start/Stop a bike ride

"OK Google, start cycling"

"OK Google, start my bike ride"

"OK Google, stop cycling"

Action

vnd.google.fitness.TRACK

Mime Type

vnd.google.fitness.activity/biking

Extras

actionStatus - a string with the value ActiveActionStatus
when starting and CompletedActionStatus when stopping.

Start/Stop a run

"OK Google, track my run"

"OK Google, start running"

"OK Google, stop running"

Action

vnd.google.fitness.TRACK

MimeType

vnd.google.fitness.activity/running

Extras

actionStatus - a string with the value ActiveActionStatus
when starting and CompletedActionStatus when stopping

Start/Stop a workout

"OK Google, start a workout"

"OK Google, track my workout"

"OK Google, stop workout"

Action

vnd.google.fitness.TRACK

MimeType

vnd.google.fitness.activity/other

Extras

actionStatus - a string with the value ActiveActionStatus
when starting and CompletedActionStatus when stopping

Show heart rate

"OK Google, what’s my heart rate?"

"OK Google, what’s my bpm?"

Action

vnd.google.fitness.VIEW

Mime Type

vnd.google.fitness.data_type/com.google.heart_rate.bpm

Show step count

"OK Google, how many steps have I taken?"

"OK Google, what’s my step count?"

Action

vnd.google.fitness.VIEW

Mime Type

vnd.google.fitness.data_type/com.google.step_count.cumulative

For documentation on registering for platform intents and accessing the extras information
contained in them, see Common intents.

Declare App-provided Voice Actions

If none of the platform voice intents work for you, you can start your apps directly with
a "Start MyActivityName" voice action.

Registering for a "Start" action is the same as registering
for a launcher icon on a handheld. Instead of requesting an app icon in a launcher,
your app requests a voice action instead.

To specify the text to say after "Start", specify a label attribute for the activtiy
that you want to start. For example, this intent filter recognizes the
"Start MyRunningApp" voice action and launches StartRunActivity.

Obtaining Free-form Speech Input

In addition to using voice actions to launch activities, you can also call the system's
built-in Speech Recognizer activity to obtain speech input from users. This is useful to obtain input
from users and then process it, such as doing a search or sending it as a message.