建構應用程式動作

應用程式動作可讓使用者藉由詢問 Google 助理或使用 Google 助理建議的 Android 快速指令,在您的 Android 應用程式中啟動功能。以下是使用應用程式動作擴充 Android 應用程式的主要步驟:

  1. 找出要觸發的應用程式內功能及其相符的內建意圖 (BII)
  2. 提供 BII 的執行要求詳細資料。
  3. 推送應用程式動作的快速指令至 Google 助理。
  4. 使用測試裝置預覽應用程式動作。
  5. 建立應用程式的測試版。
  6. 要求審查和部署應用程式動作。

或者,您可以定義要提供給 Google 助理的動態捷徑,以便向使用者推薦這些捷徑。請按照應用程式動作程式碼研究室中的操作說明,使用範例應用程式建立應用程式動作。

需求條件

開始開發應用程式動作前,請確認您和應用程式符合下列規定:

  • 您必須擁有可存取 Google Play 管理中心的 Google 帳戶。
  • 應用程式必須發布至 Google Play 商店,因為應用程式動作僅適用於在該商店發布的應用程式。另外,也請確定應用程式不適合在工作資料夾內使用,因為 Google Play 管理版不支援應用程式動作。
  • 您需要實體或虛擬裝置,才能測試應用程式動作。
  • 您需要最新版的 Android Studio
  • 您必須使用相同的 Google 帳戶登入 Android Studio、測試裝置上的 Google 應用程式,以及 Google Play 管理中心。
  • 您必須在測試裝置上設定 Google 助理,然後按住「主畫面」按鈕進行測試。

比對內建意圖與應用程式功能

找出使用者可能想利用語音要求直接跳至 Android 應用程式的功能,並參閱內建意圖參考資料,找到適合您用途的 BII。BII 會為使用者想透過查詢在應用程式內執行的作業建立模型,因此,請找出符合應用程式重要功能和使用者流程的 BII。

許多常見的 BII 都適用於幾乎所有 Android 應用程式,例如透過 actions.intent.GET_THING BII,將應用程式內搜尋延伸至 Google 助理,或是實作 actions.intent.OPEN_APP_FEATURE BII,讓使用者以語音指令啟動特定應用程式功能。

還有一些 BII 可啟用垂直或特定類別用途。舉例來說,健身應用程式可以使用 actions.intent.START_EXERCISE BII。

為了確保使用者能夠獲得良好的體驗,並避免可能要等待核准,請確保您導入的每個 BII 都具有應用程式內功能的關聯性。

應用程式動作的運作原理,是依照 Google 助理應用程式啟動 Android 意圖,將使用者直接導向應用程式中的特定內容。您可以指定 targetClasstargetPackage 欄位來定義意圖,以明確啟動活動。如果您的應用程式已實作 Android 深層連結網址,您可以選擇將意圖設為使用深層連結執行要求。詳情請參閱「測試活動深層連結」一節。

提供內建意圖的執行要求詳細資料

大部分的應用程式動作建構是在 Android 應用程式的 shortcuts.xml 資源檔案中宣告功能,並在其中指定您挑選的 BII 及對應的執行要求。BII 會為使用者查詢的作業建立模型,然後執行要求意圖便會向 Google 助理提供如何執行該作業的資訊。

shortcuts.xml 檔案中,<capability> 元素便代表 BII,而每項執行要求則以 <intent> 元素代表:

<shortcuts>
    <capability android:name="actions.intent.START_EXERCISE">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.example.app"
            android:targetClass="com.example.app.browse">
            <parameter
                android:name="exercise.name"
                android:key="exercise_name">
            </parameter>
        </intent>
    </capability>

多數的 BII 都會依據 schema.org 實體,從使用者查詢中擷取意圖參數。然後,應用程式便會用這些 BII 參數引導使用者前往所選功能。舉例來說,上述程式碼會將 exercise.name BII 參數對應至 exercise_name Android intent 參數。

如果您要使用深層連結執行動作,請使用 urlTemplate 欄位定義 Google 助理產生的深層連結網址:

<shortcuts>
    <capability android:name="actions.intent.START_EXERCISE">
        <intent android:action="android.intent.action.VIEW">
            <url-template android:value="myexerciseapp://start{?exercise_name}" />
            <parameter android:name="exercise.name"
                android:key="exercise_name"
                android:mimeType="text/*">
            </parameter>
        </intent>
    </capability>
</shortcuts>

如需在 shortcuts.xml 檔案中加入應用程式動作的重要詳細資料,請參閱「建立 shortcuts.xml」。該頁面也會說明如何指定應用程式預期的參數值。

實作 GET_THING 內建意圖

如果您的應用程式有搜尋功能,您就必須為該函式導入 actions.intent.GET_THING BII。如此一來,當使用者查詢「Ok Google,搜尋範例應用程式的 Example Thing」時,Google 助理就會將使用者導向應用程式的搜尋功能,以取得應用程式內搜尋結果。

在您的 shortcuts.xml 檔案中,為 actions.intent.GET_THING BII 實作 <capability>,同時實作任何其他 BII。只要提供至少一項執行要求,將使用者查詢傳送至應用程式的搜尋功能,就可以針對 GET_THING 使用多個執行要求。

以下範例說明如何在 shortcuts.xml 中新增 actions.intent.GET_THING BII:

  <capability android:name="actions.intent.GET_THING">
    <intent
      android:targetPackage="com.example.myapp"
      android:targetClass="com.example.myapp.MySearchActivity">
      <parameter android:name="thing.name" android:key="query" />
    </intent>
  </capability>

在搜尋 Activity 中,從 intent 的額外資料擷取搜尋查詢,然後傳送至應用程式的搜尋功能。在上述程式碼中,以 query 鍵傳遞的搜尋查詢會對應至 "thing.name" BII 參數。然後使用查詢執行搜尋,並在使用者介面中顯示結果。

選用:將應用程式動作的快速指令推送至 Google 助理

定義動作的功能後,使用者就能說出「Ok Google,用範例應用程式點一份披薩」這類指令來啟動動作。Google 助理可在適當時間為 Android 使用者提供操作建議,方便使用者尋找並重播您的動作。Google 助理可以提供動態和靜態快速鍵的建議。

如要將動態捷徑推送至 Google 助理,請使用 Google 捷徑整合資料庫。此 Jetpack 程式庫可讓 Google 助理擷取您的捷徑,並在適當時機向使用者提供捷徑。

詳情請參閱「推送動態捷徑至 Google 助理」。

預覽應用程式動作

在開發和測試期間,請使用 Android Studio 版的 Google 助理外掛程式,以測試應用程式動作是否可於您的應用程式中正常運作。外掛程式可在 Google 帳戶的 Google 助理中建立應用程式動作預覽。使用這組測試工具,即可在實體測試裝置或模擬器上提供您預期使用者會提出的輸入參數所產生的 BII,藉此測試執行要求。

當您預覽應用程式動作時,也可以在裝置上用語音觸發查詢內容。這項功能僅適用於應用程式動作 BII 參考資料中列出的查詢內容。請將語音觸發功能用於純展示用途,而非做為定期測試之用。

請先使用 Google Play 管理中心的開發人員工具,在草稿模式下測試應用程式,再將應用程式送交審查。如要進一步瞭解如何使用 Google Play 管理中心部署應用程式草稿,請參閱「準備及發布版本」一文。

建立測試版本

當您準備好與其他測試人員測試應用程式動作時,請建立應用程式的內部或封閉測試測試版。根據預設,內部和封閉測試版測試人員可以存取已審核並獲得核准的應用程式動作。

如要授予所有應用程式動作 (包括未經核准的動作) 的測試存取權限,請指示測試人員加入應用程式動作開發計畫 Google 網路論壇。這個群組的成員可存取封閉和內部測試版本中的所有應用程式動作,而不必使用應用程式動作測試工具建立預覽。加入群組後,最多可能需要三小時才能取得存取權限。

要求審查和部署應用程式動作

應用程式動作必須通過審查和核准,使用者才能使用已發布的應用程式或公開測試版。應用程式動作審查不會影響 Android 應用程式在 Google Play 內的審查及部署狀態。即使應用程式提交內容已通過核准並發布至 Play 商店,Google 可能仍在審查您的 shortcuts.xml。除非應用程式也通過審查,否則應用程式動作無法對使用者使用。

您部署應用程式時,應用程式動作依然會持續有效。不過,重新部署的版本需要通過 Google 審查。如果新版本無法正常運作,或是含有違反政策的內容,則 Google 保留停用應用程式內的應用程式動作的權利。

如要提交應用程式動作進行審查,請進行下列事項:

  1. 接受 Google Play 管理中心的《應用程式動作服務條款》(依序點選「進階設定」>「應用程式動作」):

    Google Play 管理中心的《App Actions 服務條款》。

  2. 按照平常的發布方式,將應用程式 (含 shortcuts.xml) 上傳至 Google Play 管理中心。

  3. 將應用程式上傳至 Play 管理中心之後,Google 會透過您在 Play 管理中心帳戶登錄的電子郵件地址與您聯絡,並提供更多與應用程式動作審查狀態相關的資訊。您也可以聯絡 Google 助理開發人員支援團隊,洽詢應用程式動作審查狀態的相關問題。在聯絡表單中,輸入您的應用程式套件 ID,然後在「How can we help you?」(您需要哪方面的協助?) 選擇方塊中選擇「App Action review」(應用程式動作審查)

如要使用深層連結來透過應用程式動作啟動 Activity,必須使用深層連結網址設定 Activity,且 Android 應用程式資訊清單內必須有對應的意圖篩選器。

如果想測試使用者是否能夠存取活動,以及是否能夠使用深層連結透過應用程式動作觸發活動,請執行以下 adb 指令:

$ adb shell am start -a android.intent.action.VIEW -d "AppLinksURL"

例如:

$ adb shell am start -a android.intent.action.VIEW -d "https://www.example.com/deeplink"

如果活動並未正確以 adb 指令啟動,請檢查以下項目:

  • 在應用程式資訊清單檔案內,活動設有 android:exported=true,以便使用 Google 助理產生的意圖啟動該活動。
  • 如果您使用應用程式連結網址,請按照「處理 Android 應用程式連結」說明的步驟操作。

應用程式動作政策

應用程式動作必須遵守特定政策,確保觸發應用程式的使用者獲得預期的體驗。請在提交應用程式前詳閱這些政策,以便提供最佳使用者體驗,並避免 Play 商店審查延遲或遭到拒絕。

  • 引導使用者前往所需內容

    應用程式動作內建意圖 (BII) 和/或參數,必須只將使用者導向相關且使用者想要的動作。這包括應用程式內容、網站內容,或顯示在 Slice 或小工具中顯示的資訊 (前提是使用者必須提供該體驗)。

    舉例來說,START_EXERCISE BII 的實作項目可協助使用者啟動特定類型的運動,例如跑步或游泳。這項政策的唯一例外狀況是,您的 OPEN_APP_FEATURE BII 將使用者導向至應用程式主畫面。

  • 實作相關的應用程式動作 BII

    實作的 BIIs 必須與應用程式的內容和功能直接相關。

    舉例來說,如果您的應用程式屬於「通訊」Play 商店類別,請勿實作 START_EXERCISE BII,因為該類別適用於「健康與健身」類別的應用程式。

  • 導入相關的自訂意圖

    自訂意圖定義的查詢與應用程式的內容和功能相關。舉例來說,針對 Transportation Play 商店類別的應用程式,使用相關聯的查詢模式「Show me burritoRecipe」建立意圖 custom.action.intent.GET_RECIPE,也可能違反這項政策。