建立中國版 Wear OS 應用程式

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

使用正確的 Google Play 服務版本

Google Play 服務 10.2.0 版本可以針對 Fused Location Provider APIData 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 程式庫。方法必須依照使用 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.BuilderaddApiIfAvailable() 方法連線至必要的 API。在 onConnected() 回呼後,使用 hasConnectedApi() 方法,確保每個要求的 API 皆已正確連結。

在中國發布應用程式

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