系統語音操作不再是與 Google 助理整合的推薦路徑。如要進一步瞭解建構替代方案,請參閱應用程式動作說明文件

開始使用系統語音操作

Google Voice Actions 可辨識許多語音和打字動作要求,並為它們建立 Android 意圖。Play 音樂和 Keep 等應用程式可接收這些意圖,並執行要求的動作。應用程式也可以宣告支援部分動作:

  1. 定義意圖篩選器
  2. 處理應用程式中的意圖
  3. 更新應用程式的完成狀態

如需支援系統動作的詳細清單,請參閱系統動作參考資料

步驟 1:定義意圖篩選器

如要指出您的應用程式支援一或多個系統動作,請在應用程式資訊清單檔案中,為每個動作加入意圖篩選器。

例如,如果您的應用程式可設定鬧鐘,請在資訊清單檔案中加入以下意圖篩選器:

<activity ...>
    <intent-filter>
        <action android:name="android.intent.action.SET_ALARM"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

如果使用者有多個應用程式可以處理設定鬧鐘意圖,Google Voice 動作會讓使用者選擇要透過該應用程式完成動作:

顯示 Google app 叫用應用程式的圖片

圖 1:語音操作可讓使用者從支援系統動作的應用程式選取。

步驟 2:處理應用程式中的意圖

應用程式收到意圖時,應執行動作。在這個範例中,應設定鬧鐘。請參閱下列程式碼範例。

步驟 3:更新應用程式完成狀態

App Indexing API 可讓您將已完成的應用程式活動傳送給 Google。日後,Google 就可以透過 Google 應用程式的查詢自動完成功能,再次向使用者顯示您的內容。

應用程式執行動作後,請使用適當的動作類型呼叫 AppIndexApi.end() 方法,例如 Action.TYPE_ADD

建議您設定適當的動作狀態類型,報告動作是否已順利完成。您可以使用 setActionStatus 方法為特定動作設定狀態。

以下為完整的範例,示範如何處理傳入的意圖,並使用 App Indexing API 回報使用者已成功設定鬧鐘:

public class MainActivity extends Activity {

    private static final Uri ALARM_URI = Uri.parse("android-app://com.myclockapp/set_alarm_page");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...

        // Get the intent
        Intent intent = getIntent();
        if (AlarmClock.ACTION_SET_ALARM.equals(intent.getAction())) {
            if (intent.hasExtra(AlarmClock.EXTRA_HOUR)) {
                // Step 2: get the rest of the intent extras and set an alarm
                ...
            }

            // Step 3: report the action through the App Indexing API
            Thing alarm = new Thing.Builder()
                    .setName("Alarm for 4:00 PM")
                    .setDescription("Alarm set for 4:00 PM, with the 'Argon' ringtone"
                                    + " and vibrate turned on.")
                    .setUrl(APP_URI)
                    .build();

            Action setAlarmAction = new Action.Builder(Action.TYPE_ADD)
                    .setObject(alarm)
                    .setActionStatus(Action.STATUS_TYPE_COMPLETED)
                    .build();

            AppIndex.AppIndexApi.end(mClient, setAlarmAction);
        }
    }

    ...

}

系統動作參考資料

當 Google Voice 偵測到下表中列出的任何動作時,就會啟動意圖。

警報動作

動作 範例指令
設定鬧鐘 設定早上 6 點的鬧鐘
設定計時器 設定 5 分鐘的計時器

通訊動作

動作 範例指令
撥打電話 撥打 555-5555
打電話給星巴
打電話給媽媽
撥打電話

「通話」動作只會在內建內建撥號功能的裝置 (例如手機) 和支援撥號功能的應用程式 (例如使用 VoIP 應用程式的平板電腦上) 上觸發。

健身動作

動作 範例指令
開始/停止騎自行車 開始騎單車
開始/停止跑步 開始跑步
開始/停止運動 開始運動
顯示心率 顯示心率
顯示步數 顯示步數

本地動作

動作 範例指令
預約計程車 預訂計程車

「預訂計程車」動作僅適用於 Android Wear。

媒體動作

動作 範例指令
透過搜尋功能播放音樂 播放 michael jackson Billie jean
播放一些音樂
播放古典音樂
播放牆上音樂
播放擴音器的粉紅色折疊
拍照 拍照
錄製影片 錄製影片

開啟動作

動作 範例指令
開啟網址 開啟 twitter.com
開啟應用程式 open twitter (預設;無特定意圖)。

效率提升動作

動作 範例指令
新增記事 新增「雜貨」採購記事

搜尋動作

動作 範例指令
使用特定應用程式進行搜尋 搜尋 YouTube 上的貓咪影片