Data Layer API 總覽

雲端節點由 Google 自有的伺服器控制
圖 1. 手持裝置和 Wear OS 裝置的節點網路範例。

Wearable Data Layer API 是 Google Play 服務的一部分,可在穿戴式裝置 (例如智慧手錶) 和連線手持裝置 (通常是智慧型手機) 之間提供通訊管道。這是在裝置之間同步處理及傳輸資料的方式。

注意:這個 API 僅適用於 Wear OS 手錶和配對的 Android 裝置。Wear OS 手錶與 iOS 手機配對時,在有網際網路連線的情況下,應用程式可以查詢其他雲端式 API。如要進一步瞭解其他 API,請參閱「在 Wear OS 上存取網路和進行同步處理」。

注意:由於資料層 API 是專為手持裝置和穿戴式裝置之間的通訊而設計,因此只有這些 API 可用於設定這類裝置間的通訊。舉例來說,請勿嘗試開啟低階通訊端來建立通訊管道。

常見用途

Data Layer API 特別適合健身和媒體用途。

健身應用程式

健身應用程式通常需要將手錶擷取的運動資料寫入行動應用程式或 Health Connect。如果使用 Data Layer API 傳輸資料,請使用訊息用戶端,將運動資料從 Wear OS 應用程式傳送至行動應用程式,以便寫入 Health Connect。

在家運動時,將即時資料串流至行動裝置

常見的居家健身情境是將心率資料從 Wear OS 裝置串流至行動裝置,並在使用者的行動裝置螢幕上顯示最新的心率資訊。如要串流這類資料,請使用管道用戶端

媒體應用程式

如要透過從手錶傳送至手機的暫停/繼續/開始/結束動作來控制媒體播放器,請使用訊息用戶端

通訊選項

資料會透過下列其中一種方式轉移:

  1. 直接:Wear OS 裝置與其他裝置之間已建立藍牙連線。
  2. 透過可用網路 (例如 LTE 或 Wi-Fi),使用 Google 伺服器上的網路節點做為中介。

視裝置可用的連線方式而定,所有資料層用戶端都可以透過藍牙或雲端交換資料。假設透過資料層傳輸的資料可能會在某個時間點使用 Google 自有伺服器。

藍牙

當裝置透過藍牙連線時,資料層會使用這個連線方式。裝置之間會有一個採用標準藍牙加密機制的加密管道,由 Google Play 服務管理。

雲端

無法使用藍牙時,系統會自動透過 Google 的雲端服務轉送資料。所有透過 Google Cloud 傳輸的資料都會經過端對端加密處理。

通訊安全性

Google Play 服務會強制執行下列限制,確保在 Wear OS 裝置上安裝的應用程式,與在附近手持裝置上安裝的相同應用程式之間,可提供更安全的通訊:

  • 兩部裝置的套件名稱必須一致。
  • 兩部裝置的套件簽名必須一致。

無論連線類型為何,其他應用程式都無法存取資料。

設定

Wearable Data Layer API 具有下列依附元件:

在 Wear 模組的 build.gradle 檔案中納入下列依附元件:

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

簡化初始配對程序

Horologist 在平台 API 之上提供多個輔助程式庫。其中包含資料層程式庫,可協助在行動裝置和 Wear OS 裝置之間建立連線。此外,它還提供方便的 API,可執行下列操作:

  • 在其他裝置上安裝應用程式。
  • 在其他裝置上啟動應用程式。
  • 在其他裝置上啟動特定活動。
  • 啟動隨附應用程式。

存取資料層

如要呼叫資料層 API,請使用 Wearable 類別取得各種用戶端類別的例項,例如 DataClientMessageClient

詳情請參閱 DataLayer 範例

使用最基本的用戶端

如要建立用戶端,請參閱以下程式碼範例:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

結構定義可以是任何有效的 Android 結構定義。如果您在 Activity 的範圍內使用 API,請使用 Wearable 類別的 getDataClient() 方法。這樣一來,特定互動能夠以對話方塊顯示 (而非通知),例如要求使用者更新自己的 Google Play 服務版本時。

根據預設,對監聽器的回呼是在應用程式主要 UI 執行緒進行。如要在不同執行緒進行回呼,請使用 WearableOptions 物件指定自訂 Looper

Kotlin

runBlocking {
    Wearable.getDataClient(context, options)
}

Java

WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

詳情請參閱 WearableOptions.Builder 參考資料。

視需要重新建立用戶端執行個體

DataClientMessageClient 等 Wearable API 用戶端的建立成本較低。因此,請不要保留用戶端,而是在需要時使用適合應用程式的樣式重新建立用戶端。

用戶端狀態 (例如已註冊的事件監聽器組合) 會在所有用戶端共用,並於應用程式執行期間更新 Google Play 服務時保留。

這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。

上次更新時間:2025-03-07 (世界標準時間)。