打造中國版 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 程式庫。方法必須依照使用 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 平台支援的語音意圖:
類別 | 範例 | 意圖規格 |
叫車服務 | 打車去三里屯 | 動作
額外說明
額外內容為選用項目。 |
設定鬧鐘 | 設定一個明早七點的鬧鐘 | 動作
額外內容
這些額外內容為選用項目。請同時提供這兩個額外項目,或兩者皆不提供。 |
設定計時器 | 設置一個三分鐘的倒數計時 | 動作
額外內容
|
啟動碼錶 | 開始計時 | 動作
|
開始或停止騎單車 | 開始騎車 | 動作
MIME 類型
額外內容
|
開始或停止跑步 | 開始跑步 | 動作
MIME 類型
額外內容
|
開始或停止健身 | 開始鍛鍊 | 動作
MIME 類型
額外內容
|
顯示心率 | 查看心率 | 動作
MIME 類型
|
顯示步數 | 查看步數 | 動作
MIME 類型
|
導航 | 導航去三里屯 | 動作 資料 geo:latitude,longitude?q=融科資訊中心 |
語音助理也可以使用現有的 Android 常用意圖來觸發特定行為 (如適用的話)。
模擬器支援
您可以使用中國版本 Wear OS 模擬器映像檔來測試應用程式。Android Studio 3.0 以上版本支援這項功能。
如要在中國版模擬器上測試應用程式,請按照下列步驟操作:
- 安裝 Android Emulator。
- 從 SDK Manager 下載中國版 Wear OS 映像檔。請使用 Wear OS 3.5 (API 級別 30) 適用的版本。
- 建立 AVD 設定檔時,請選擇中國版 Wear OS 映像檔。
- 執行中國版 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 的可用性:
- 透過獨立的
GoogleApiClient
執行個體連線至其他 API。此介面包含回呼,提醒應用程式出現連線成功或失敗。如果連線失敗,ConnectionResult
會顯示API_UNAVAILABLE
。如要瞭解如何處理連線失敗問題,請參閱「存取 Google API」。 - 使用
GoogleApiClient.Builder
的addApiIfAvailable()
方法連線至必要的 API。在onConnected()
回呼後,使用hasConnectedApi()
方法,確保每個要求的 API 皆已正確連結。
在中國發布應用程式
如要有效地觸及中國版 Wear OS 使用者,可以透過第三方 Wear OS 應用程式商店發布應用程式,例如: