前景應用程式叫用

應用程式動作可讓使用者與 Google 助理交談,並直接進入特定 使用者說出「Ok Google,幫我叫車」這類的指令時,應用程式到達網頁 範例應用程式。」透過前景應用程式叫用,您可以進一步改善 就能大幅改善使用者體驗

前景應用程式叫用功能可讓系統比對內建意圖 (BII),而不使用任何值 需要在 裝置前景。

舉例來說,使用者在前景執行您的代僱駕駛服務應用程式,並說出或打字: 「幫我叫車到山景城」;您的應用程式會使用這個項目 將目的地欄位設為山景城這樣當使用者說出 輸入「幫我叫車是 SFO 叫車」,應用程式即可設定上車服務 並保留應用程式的狀態

限制

前景應用程式叫用功能僅適用於下列 BII:

取得語言代碼支援,以及與前景應用程式叫用相關的查詢範例 ,請參閱內建意圖參考資料

支援前景應用程式叫用

新增前景應用程式叫用支援功能時,必須新增執行要求 根據所需前景活動調整行為如果該活動出現在 前景並叫用應用程式動作,則 Google 助理會傳遞深層連結意圖 並加上該活動的額外標記,以便應用程式更新狀態。

如要針對 BII 實作前景應用程式叫用,請按照下列步驟操作:

  1. shortcuts.xml 檔案中,為 BII 新增 <intent> 標記 您想要支援前景應用程式叫用的 <capability>
  2. <intent> 標記中加入 <extra> 標記。
  3. <extra> 標記中,將 android:key 設為 "requiredForegroundActivity"。 然後將 android:value 設為需要您應用程式 在前景執行指定不含任何類別的活動 縮寫,請使用應用程式套件名稱,後接正斜線 (/), 後面加上活動名稱:APP_PACKAGE_NAME/ACTIVITY_NAME
  4. 在您為 "requiredForegroundActivity" 指定的前景活動中, 實作 onNewIntent() 方法,處理深層連結意圖: 已設定 SINGLE_TOP 旗標。Google 助理透過 當指定活動於前景時,將此標記做為執行要求。
  5. onNewIntent() 呼叫視為前景活動的更新。 使用從深層連結擷取的參數來管理該活動的狀態。
,瞭解如何調查及移除這項存取權。

如果您的應用程式會使用路由器活動,讓所有外部深層連結都觸發 單一隔離路由器活動 處理路由器活動

範例

以下 shortcuts.xml 範例檔案中的程式碼片段說明如何新增 requiredForegroundActivity 屬性:

  <capability name="actions.intent.CREATE_TAXI_RESERVATION">
      <!-- Trigger with foreground app invocation if MainActivity is in the foreground. -->
      <intent
          android:targetClass="com.example.app.MainActivity"
          android:targetPackage="com.example.app">
          <parameter
              android:name="taxiReservation.dropoffLocation.name"
              android:key="dropoff" />
          <extra
              android:key="requiredForegroundActivity"
              android:value="com.example.app/com.example.app.MainActivity" />
      </intent>
      <!-- This won't trigger if MainActivity is in the foreground. -->
      <intent
          android:targetClass="com.example.app.MainActivity"
          android:targetPackage="com.example.app">
          <parameter
              android:name="taxiReservation.dropoffLocation.name"
              android:key="dropoff" />
      </intent>
  </capability>

使用者權限

在裝置設定中,使用者必須啟用「使用畫面中的文字」
            ,前景應用程式叫用可正常運作

如要讓前景應用程式叫用功能為使用者運作,必須具有 「使用畫面中的文字」裝置設定已啟用。位置和確切名稱 這項設定可能會因原始設備製造商 (OEM) 或裝置製造商而異。舉例來說, 裝置設定可能會在使用者的裝置上稱為「使用畫面內容」 裝置。

如要在 Pixel 手機上套用這項 Android 設定,請先前往「設定」應用程式 > 應用程式與 通知 >預設應用程式 >小幫手應用程式。然後,在「小幫手和語音」 輸入畫面,然後啟用使用畫面中的文字

測試叫用

如要嘗試執行前景應用程式叫用,請按照下列步驟操作:

  1. 按照「使用者權限」部分中的操作說明啟用 「使用畫面中的文字」裝置設定。
  2. 開啟應用程式,前往您列為必要前景活動的活動。
  3. 新聞與按住主畫面按鈕,即可在目前畫面重疊顯示 Google 助理 應用程式。提供與您實作的 BII 相應的查詢 但未提及應用程式名稱本身驗證成功後,您的應用程式就會更新 相關內容,並維持狀態,無須重新啟動 該活動。

處理路由器活動

有些應用程式會使用單一隔離路由器處理所有外部深層連結 活動。路由器活動隨後會啟動適當的商業邏輯 並傳回商業邏輯 將活動移到前景

觸發深層連結可能會導致路由器活動新增到頂端 位於前景活動上方的工作堆疊適用於使用路由器的應用程式 那麼您必須先確定路由器活動會傳遞已傳送的意圖 切換至目前的前景活動例項。如何達成 這項規定會因路由器活動開始的位置而異。

如果你的路由器啟動與商業邏輯活動相同的工作堆疊, 使用 SINGLE_TOPCLEAR_TOP、 和 NEW_TASK

Kotlin

Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK

Java

Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK

路由器從商業邏輯在個別工作堆疊中啟動 活動,將含有 SINGLE_TOP 標記的意圖轉送給商家 也就是邏輯活動