建構應用程式動作

應用程式動作可讓使用者透過詢問 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.ORDER_MENU_ITEM BII。

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

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

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

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

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

<shortcuts>
    <capability android:name="actions.intent.ORDER_MENU_ITEM">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.example.app"
            android:targetClass="com.example.app.browse">
            <parameter
                android:name="menuItem.name"
                android:key="query">
            </parameter>
        </intent>
    </capability>

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

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

<shortcuts>
    <capability android:name="actions.intent.ORDER_MENU_ITEM">
        <intent android:action="android.intent.action.VIEW">
            <url-template android:value="myfoodapp://browse{?query}" />
            <parameter android:name="menuItem.name"
                android:key="query"
                android:mimeType="text/*">
            </parameter>
        </intent>
    </capability>
</shortcuts>

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

實作 GET_THING 內建意圖

如果您的應用程式有搜尋功能,則必須為該函式實作 actions.intent.GET_THING BII。然後當使用者查詢下列內容時,Google 助理會將使用者導向應用程式的搜尋功能:「Ok Google,在範例應用程式中搜尋範例項目」。

在您的 shortcuts.xml 檔案中,當您實作任何其他 BII 時,為 actions.intent.GET_THING BII 實作 <capability>。只要提供至少一項執行要求,將使用者查詢傳送至應用程式的搜尋功能,就可以針對 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 管理中心的《Actions on Google 服務條款》(依序點選「進階設定」>「Actions on Google」):

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

  2. 上傳應用程式 (包含 shortcuts.xml) 至 Google Play 管理中心,如同正常發布程序。

  3. 將應用程式上傳至 Play 管理中心之後,我們會透過您在 Play 管理中心帳戶中的電子郵件地址與您聯絡,並提供更多與應用程式動作審查狀態相關的資訊。您也可以聯絡 Actions on Google Developers 支援部門,詢問應用程式動作審查狀態的相關問題。在聯絡表單中,輸入您的應用程式套件 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) 和/或參數只能將使用者導向相關和使用者預期的動作。這類體驗可能包括應用程式內內容、網站內容,或是片段或小工具中顯示的資訊,但前提是須具備使用者預期的體驗。

    舉例來說,實作 ORDER_MENU_ITEM BII 可協助使用者為特定選單項目或料理類型啟動訂單。這項政策的唯一例外狀況是 OPEN_APP_FEATURE BII 將使用者導向應用程式主畫面。

  • 將使用者導向相關的網頁內容

    如果使用者被重新導向至網頁內容,網站必須與使用者預期的動作相關,且由品牌擁有。

    舉例來說,將觸發 GET_RESERVATION BII 的使用者重新導向至不屬於應用程式品牌 exampledomain.comgoogle.com/travel,就會是違規行為。另一個違規例子是,將觸發 GET_CALL_HISTORY BII 的使用者重新導向至 exampledomain.com/payment,並要求他們購買。

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

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

    舉例來說,如果您的應用程式屬於「通訊內容 Play 商店」類別,請勿實作 ORDER_MENU_ITEM BII,這是「餐飲」類別的應用程式建議做法。

  • 導入相關的自訂意圖

    自訂意圖定義的查詢與應用程式的內容和功能相關。舉例來說,針對交通運輸 Play 商店類別中的應用程式,使用「顯示墨西哥捲餅食譜」的相關查詢模式建立意圖 custom.action.intent.GET_RECIPE,就屬於這項政策的一項可能違規情況。