建立中國版 Wear OS 應用程式

打造中國版 Wear OS 應用程式時,您必須考量未預先安裝 Google Play 服務的手機。本頁說明開發人員可能需因應中國市場調整的常見變更。

使用正確的 Google Play 服務版本

Google Play 服務 10.2.0 版本可以針對 Fused Location Provider API 和 Data Layer API 提供全球性支援。如果您使用這些 API,以確保能夠在中國境內支援更多 Wear OS 裝置類型,則必須使用此版本的 Google Play 服務。如果不是上述情況,則不一定要使用這個依附元件。

注意:雖然 Google Play 服務包含適用於 Wear OS 應用程式的 API,但中國版 Wear OS 應用程式應繼續使用與 GoogleApiClient 相關的 API。詳情請參閱「存取 Wearable API」。

Fused Location Provider API

如果您使用了 Fused Location Provider API,請在 Wear OS 模組的 build.gradle 檔案中納入以下依附元件:

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-location:10.2.0")
}

Data Layer API

如果應用程式使用 Data Layer API,必須在 Wear OS 模組的 build.gradle 檔案中新增以下這行內容。這一行需要使用 10.2.0 版的用戶端程式庫。

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
    ...
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
    ...
}

在行動裝置模組的 build.gradle 檔案中新增下列程式碼,將 Google Play 服務依附元件換成參照 10.2.0 版。

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
}

驗證

實作驗證程序前,請檢閱您的用途,確認是否需要驗證。舉例來說,如果您的應用程式提供天氣預報資訊,那麼使用者就不需要登入進行驗證。

如果需要驗證,建議使用 AndroidX OAuth 2.0 程式庫。方法必須依照使用 PKCE 進行授權碼授權流程。您也可以使用穿戴式裝置的驗證中所述的其他方法。不建議使用穿戴式裝置支援資料庫。

詳情請參閱 GitHub 上的「Wear OS OAuth 範例」。

橋接通知

中國不支援橋接通知。只有在 Wear OS 裝置已透過藍牙連線至手機時,手機通知才會橋接至 Wear OS。

位置與對應座標的相容性

使用 FusedLocationProvider (FLP)偵測使用者在中國境內的位置,方法與在世界其他地區使用的方法相同。無論手錶硬體和手機配對平台為何,該應用程式都會將最佳資訊納入考量。使用 FLP 時,也會新增 Wear OS 平台內建的電池最佳化功能。

將 FusedLocationProvider 與第三方地圖 SDK 整合時,請將供應商之間的座標相容性納入考量。FusedLocationProvider 會根據 WGS84 標準回報位置資訊。請視情況轉換座標系統。

Google Fit 支援

中國境內支援 Google Fit 的累計步數計數器、活動時間和心肺強化分數,且記錄最長可保留 7 天。您無須提供使用者憑證即可存取。

語音指令支援

Wear OS 平台會根據使用者動作 (例如「顯示心率」或「設定鬧鐘」) 提供多個語音意圖。如此一來,當使用者說出自己想要的操作,系統就能進行辨識,並啟動最符合語音指令的活動。

當使用者說出語音指令時,您的應用程式可以篩選意圖來啟動活動。如要在背景啟動服務,請將活動顯示為視覺提示,並在活動中啟動服務。請務必呼叫 finish(),才能移除視覺提示。

以下列出 Wear OS 平台支援的語音意圖:

類別 範例 意圖規格
叫車服務 打車去三里屯 動作

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

額外

to:可識別的目的地

額外內容為選用項目。

設定鬧鐘 設定一個明早七點的鬧鐘

動作

android.intent.action.SET_ALARM

額外內容

android.provider.AlarmClock.EXTRA_HOUR:包含鬧鐘小時數的整數

android.provider.AlarmClock.EXTRA_MINUTES:包含鬧鐘分鐘數的整數

這些額外內容為選用項目。請同時提供這兩個額外項目,或兩者皆不提供。

設定計時器 設置一個三分鐘的倒數計時 動作

android.intent.action.SET_TIMER

額外內容

android.provider.AlarmClock.EXTRA_LENGTH:介於 1 到 86400 之間的整數 (24 小時內的秒數),表示計時器的長度。

啟動碼錶 開始計時 動作

com.google.android.wearable.action.STOPWATCH

開始或停止騎單車 開始騎車 動作

vnd.google.fitness.TRACK

MIME 類型

vnd.google.fitness.activity/biking

額外內容

actionStatus:啟動時值為 ActiveActionStatus,停止時值為 CompletedActionStatus 的字串。

開始或停止跑步 開始跑步 動作

vnd.google.fitness.TRACK

MIME 類型

vnd.google.fitness.activity/running

額外內容

actionStatus:啟動時值為 ActiveActionStatus,停止時值為 CompletedActionStatus 的字串。

開始或停止健身 開始鍛鍊 動作

vnd.google.fitness.TRACK

MIME 類型

vnd.google.fitness.activity/other

額外內容

actionStatus:啟動時值為 ActiveActionStatus,停止時值為 CompletedActionStatus 的字串。

顯示心率 查看心率 動作

vnd.google.fitness.VIEW

MIME 類型

vnd.google.fitness.data_type/com.google.heart_rate.bpm

顯示步數 查看步數 動作

vnd.google.fitness.VIEW

MIME 類型

vnd.google.fitness.data_type/com.google.step_count.cumulative

導航 導航去三里屯 動作

android.intent.action.VIEW

資料

geo:latitude,longitude?q=融科資訊中心

語音助理也可以使用現有的 Android 常用意圖來觸發特定行為 (如適用的話)。

模擬器支援

您可以使用中國版本 Wear OS 模擬器映像檔來測試應用程式。Android Studio 3.0 以上版本支援這項功能。

如要在中國版模擬器上測試應用程式,請按照下列步驟操作:

  1. 安裝 Android Emulator。
  2. 從 SDK Manager 下載中國版 Wear OS 映像檔。請使用 Wear OS 3.5 (API 級別 30) 適用的版本。
  3. 建立 AVD 設定檔時,請選擇中國版 Wear OS 映像檔。
  4. 執行中國版 Wear OS 模擬器以進行開發。
  5. 圖 1:中國版 Wear OS 模擬器的範例。

這個版本的 Wear OS 模擬器隨附多個預先安裝的應用程式:

  • 微光模式
  • 聯絡人
  • Google 手寫輸入法
  • Google Play 服務
  • Wear OS 的健康照護服務
  • LE 裝置適用的啟動字詞辨識
  • 拼音
  • Play 商店 (已配合中國的裝置完成調整)
  • 懷錶
  • TalkBack
  • 錶面 (類比版和數位版)
  • Wear 核心服務

啟動應用程式專屬的藍牙和 Wi-Fi 頻道

Wear OS 會自動轉送網路要求。在大多數情況下,應用程式不需要開啟應用程式專屬的藍牙和 Wi-Fi 頻道。

如果應用程式在中國境內要求特定應用程式的藍牙和 Wi-Fi 頻道,則該要求會失敗,而且不會顯示相關通知。系統會改為顯示對話方塊,要求使用者確認。使用者確認後,系統就會開啟頻道。這種情況每次使用都會發生,並非只有首次使用才會發生。系統會呼叫 BluetoothAdapter.enable() 或 WifiManager.setEnabled(true)。

注意:如要指定 Android 10 (API 級別 29) 或以上的版本的應用程式來呼叫 WifiManager.setEnabled(),則其必須是系統應用程式或裝置政策控制器 (DPC)。

權限審核模式

在中國,中國版 Wear OS 裝置會在權限審查模式中執行,因此如要使用 targetApiLevel 低於 23 的應用程式,會受到某些限制:請查看下列限制:

  • 即使在安裝期間授予權限,但當 targetApiLevel 低於 23 的應用程式首次啟動時,系統會顯示對話方塊,要求使用者確認這個應用程式的權限。
  • 應用程式使用的所有元件 (例如廣播接收器、服務和活動) 在首次使用應用程式前都不會回應相應的事件。

因此,我們建議您使用 targetApiLevel 23 以上版本並採用應用程式權限最佳做法。

使用其他 Google Play 服務 API

如果應用程式使用 Wearable API 以外的 Google Play 服務 API,應用程式必須檢查這些 API 是否可在執行階段中使用,並適當回應。您可以透過兩種方式查看 Google Play 服務 API 的可用性:

  1. 透過獨立的 GoogleApiClient 執行個體連線至其他 API。此介面包含回呼,提醒應用程式出現連線成功或失敗。如果連線失敗, ConnectionResult 會顯示 API_UNAVAILABLE。如要瞭解如何處理連線失敗問題,請參閱「存取 Google API」。
  2. 使用 GoogleApiClient.Builder 的 addApiIfAvailable() 方法連線至必要的 API。在 onConnected() 回呼後,使用 hasConnectedApi() 方法,確保每個要求的 API 皆已正確連結。

在中國發布應用程式

如要有效地觸及中國版 Wear OS 使用者,可以透過第三方 Wear OS 應用程式商店發布應用程式,例如: