為捷徑新增功能

您可以透過 shortcuts.xml 中的功能,宣告使用者啟動應用程式並直接執行特定工作時可採取的動作類型。

舉例來說,Google 助理應用程式動作會利用相關功能,將應用程式內功能擴展至內建意圖 (BII),讓使用者透過語音指令啟動及控制這些功能。功能包含動作名稱,以及指定應用程式中可解析使用者意圖的 intent

在 shortcuts.xml 中定義功能

請在 Android 應用程式開發專案的 shortcuts.xml 資源檔案中定義 capability 元素。如要定義 capability 元素,請執行下列操作:

  1. 按照「建立靜態捷徑」中的操作說明建立 shortcuts.xml 資源。
  2. 請在功能中加入下列必要資訊:

    • 功能名稱:您希望應用程式執行的動作。如要瞭解需要功能定義的功能,請參閱元件說明文件。應用程式動作的語音指令使用 BII Action ID 做為功能名稱,詳情請參閱 BII 參考資料。舉例來說,GET_THING BII 會將 Action ID 列為 actions.intent.GET_THING

    • 應用程式目的地:動作為了滿足使用者要求而啟動的應用程式目的地。請使用以巢狀結構包含在 capability 內的 intent 元素來定義應用程式目的地。

    • 參數對應:每個 intent 都可能包含要以 extra 資料形式傳遞的參數。例如,每個應用程式動作 BII 都包含欄位,代表使用者在觸發 BII 的查詢中經常提供的資訊。

下列範例會展示 shortcuts.xmlactions.intent.START_EXERCISE 的功能定義。這個 BII 可讓使用者透過 Google 助理使用語音指令,開始在健身應用程式中健身:

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
  <capability android:name="actions.intent.START_EXERCISE">
    <intent
      android:action="android.intent.action.VIEW"
      android:targetPackage="com.example.sampleApp"
      android:targetClass="com.example.sampleApp.ExerciseActivity">
      <parameter
        android:name="exercise.name"
        android:key="exerciseType"/>
    </intent>
  </capability>
</shortcuts>

在上述範例中,<capability> android:name 屬性會參照 START_EXERCISE BII。如果使用者問 Google 助理「Ok Google,在 ExampleApp 中開始跑步」,從而叫用這個 BII,Google 助理就會使用巢狀 intent 元素中提供的資訊來執行使用者的要求。此範例中的 intent 定義了下列詳細資料:

  • android:targetPackage 會設定此意圖的目標應用程式套件。
  • android:targetClass 欄位會指定目的地活動:com.example.sampleApp.ExerciseActivity
  • 意圖 parameter 會宣告支援 BII 參數 exercise.name,以及如何將向使用者收集的參數值做為 intent 中的額外資料傳遞。

建立捷徑與功能的關聯

定義功能後,您可以將功能與靜態或動態捷徑建立關聯,藉此擴充其功能。捷徑連結至 capability 的方式取決於實作的功能,以及使用者要求中包含的實際字詞。舉例來說,當使用者要求 Google 助理在健身追蹤應用程式中開始跑步時,便說出「Ok Google,在範例應用程式中開始跑步」。Google 助理可以使用捷徑啟動 capability 的執行個體,為 exercise.name 參數定義有效的運動實體「跑步」。

如要進一步瞭解如何建立捷徑與應用程式動作的關聯,請參閱「應用程式動作總覽」。