透過智慧手錶語音助理,您可以隨時隨地快速有效處理大小事。穿戴式裝置上的語音互動屬於動態功能,也就是說,使用者可以直接對手錶說話,不必看著裝置等待回應。
有了 Google 助理應用程式動作,Android 開發人員就能將 Wear OS 應用程式擴充至 Google 助理,讓使用者透過語音指令快速操作應用程式,例如:「Ok Google,開始 <範例應用程式> 上的跑步運動。」
限制
Wear 裝置上的 Google 助理支援媒體和健身追蹤活動的互動功能。如要瞭解如何整合媒體應用程式與 Google 助理,請參閱「Google 助理和媒體應用程式」。Wear OS 應用程式支援下列健康與健身內建意圖 (BII):
運作方式
應用程式動作會將應用程式功能延伸至 Google 助理,讓使用者可透過語音指令快速存取應用程式功能。使用者向 Google 助理表明想使用應用程式時,Google 助理會在應用程式的 shortcuts.xml
資源中,尋找應用程式註冊的應用程式動作。
shortcuts.xml
中會描述應用程式動作,並附上 Android 功能元素。功能元素會與內建意圖 (BII) 配對。內建意圖就是應用程式功能的語意說明,包含執行要求說明,例如深層連結範本。您使用 Google Play 管理中心上傳應用程式時,Google 會註冊 shortcuts.xml
中宣告的功能,讓使用者能從 Google 助理觸發這些功能。
上圖顯示使用者在獨立應用程式中暫停運動,這個流程的步驟如下:
- 使用者針對特定穿戴式應用程式,向 Google 助理提出語音要求。
- Google 助理比對要求內容和預先訓練模型 (BII),在查詢中擷取 BII 支援的參數。
- 在這個範例中,Google 助理會比對查詢內容和
PAUSE_EXERCISE
BII,然後擷取運動名稱參數「hike」。 - 系統運用
shortcuts.xml
功能對這個 BII 的執行要求定義,觸發應用程式。 - 應用程式處理執行要求,暫停運動。
連線能力
根據應用程式在 Android 裝置生態系統中的功能,應用程式動作的開發作業會有所不同。
共用網路:如果穿戴式應用程式必須搭配行動應用程式才能提供完整功能,則使用者透過手錶向 Google 助理發出的查詢會在行動裝置上執行。在這種情況下,應用程式動作執行邏輯必須內建在行動應用程式中才能正確運作。
非共用網路:如果穿戴式應用程式不必仰賴行動應用程式就能運作,Google 助理會在手錶上執行使用者查詢。穿戴式應用程式必須內建應用程式動作功能,才能正確執行這些要求。
新增 Wear 語音功能
如要整合應用程式動作與 Wear OS 應用程式,請按照以下步驟操作:
- 比對要啟用語音控制的應用程式內功能和相對應的 BII。
在主要活動
AndroidManifest.xml
資源中,宣告 Android 快速指令支援功能。<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
將
<intent-filter>
元素新增至 AndroidManifest.xml,讓 Google 助理使用深層連結連線到應用程式內容。建立 shortcuts.xml,提供 BII 的執行要求詳細資料。您可以使用
capability
快速指令元素,向 Google 助理宣告應用程式支援的 BII。詳情請參閱「新增功能」。在
shortcuts.xml
中,為所選的 BII 導入功能。以下範例會示範START_EXERCISE
BII 的功能:<?xml version="1.0" encoding="utf-8"?> <!-- This is a sample shortcuts.xml --> <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="YOUR_UNIQUE_APPLICATION_ID" android:targetClass="YOUR_TARGET_CLASS"> <!-- Eg. name = "Running" --> <parameter android:name="exercise.name" android:key="name"/> <!-- Eg. duration = "PT1H" --> <parameter android:name="exercise.duration" android:key="duration"/> </intent> </capability> </shortcuts>
在適用情況下,請使用內嵌目錄擴充使用者語音變化支援功能,這類目錄可呈現應用程式中的功能和內容。
<capability android:name="actions.intent.START_EXERCISE"> <intent android:targetPackage="com.example.myapp" android:targetClass="com.example.myapp.ExerciseActivity"> <parameter android:name="exercise.name" android:key="exercise" /> </intent> </capability> <shortcut android:shortcutId="CARDIO_RUN"> <capability-binding android:key="actions.intent.START_EXERCISE"> <parameter-binding android:key="exercise.name" android:value="@array/run_names" /> </capability-bindig> </shortcut>
更新應用程式邏輯,方便處理收到的應用程式動作執行要求。
//FitMainActivity.kt private fun handleIntent(data: Uri?) { var actionHandled = true val startExercise = intent?.extras?.getString(START_EXERCISE) if (startExercise != null){ val type = FitActivity.Type.find(startExercise) val arguments = Bundle().apply { putSerializable(FitTrackingFragment.PARAM_TYPE, type) } updateView(FitTrackingFragment::class.java, arguments) } else{ showDefaultView() actionHandled = false } notifyActionSuccess(actionHandled) }
預覽、測試及發布應用程式
應用程式動作會提供審查及測試應用程式的工具,詳情請參閱「適用於 Android Studio 的 Google 助理外掛程式」。測試應用程式並建立測試版本後,您可以提出應用程式動作審查要求並進行部署。請參閱下列最佳做法,瞭解如何處理常見錯誤。
最佳做法
請按照以下建議的最佳做法,在整合應用程式與 Google 助理時提供良好的使用者體驗。
如要回應使用者要求,無論是在成功執行要求或提供錯誤訊息快訊時,都請顯示相應或相關的確認畫面,並搭配觸覺和音效回饋。
基本品質 | 良好品質 | 最佳品質 |
---|---|---|
|
|
|
常見錯誤和解決方法
若是以下錯誤情況,請使用下方建議的應用程式 ConfirmationActivity
訊息功能。
錯誤案例 | 使用者互動範例 | 應用程式回應 |
---|---|---|
已在進行活動 |
「開始 <運動名稱>」 「繼續 <運動名稱>」 |
顯示錯誤訊息「已在進行活動」。 |
尚未開始活動 | 「暫停/停止 <運動名稱>」 | 顯示錯誤訊息「尚未開始活動」。 |
活動類型不相符 | 「暫停/停止<運動名稱>」,但提及的運動類型與持續性活動不同。 | 顯示錯誤訊息「活動類型不相符」。 |
登入錯誤 | 「開始 <運動名稱>」,但使用者未登入應用程式。 | 提供觸覺回饋提醒使用者,並重新導向至登入畫面。 |
權限錯誤 | 使用者不具備所需權限,無法開始進行要求的活動。 | 提供觸覺回饋提醒使用者,並重新導向至權限要求畫面。 |
感應器問題 | 使用者在裝置設定關閉了定位服務。 |
提供觸覺回饋提醒使用者,並顯示感應器錯誤畫面。後續步驟 (選用):
|