一起看 I/O | 用 Health Connect 連通應用間的健康數據

作者 / Chris Wilk, Product Manager

從 MyFitnessPal 應用幫助您記錄一日三餐,再到 Withings 產品爲您呈現自身健康水平的全面分析,應用和設備已然形成了聚合多種健康和健身信息的數據源。如果您是 Android 開發者,通過在應用間連接和共享這些數據能夠幫助您更深入瞭解用戶,並向他們提供更豐富的體驗。然而,這些健康數據大都散佈在體驗各異的多種設備上,所以過去想要整合起來十分困難,此外,還沒有一種統一的隱私管理方案來保護 Android 用戶的數據。

瞭解 Health Connect

爲了解決文章開頭提到的問題,我們推出了 Health Connect,它既是一個平臺,也是面向 Android 應用開發者的 API。在用戶允許的前提下,開發者們可以用這一組 API 實現跨 Android 設備訪問和共享用戶的健康及健身數據。

當前我們正與三星合作以簡化應用之間連接爲目標來構建這個新的統一平臺。我們與三星共同推出了 Health Connect,旨在打造更豐富的應用體驗,併爲用戶提供統一的隱私控制支持。

同時,我們一直在與 MyFitnessPal、Leap Fitness 和 Withings 的開發者開展早期體驗計劃。此外,Samsung Health、Google Fit 和 Fitbit 正在整合接入 Health Connect。所有開發者們都可以通過 Android Jetpack 獲得 Health Connect 提供的 Android API 集。

Health Connect 通過使用自身的平臺和技術來連接健康信息併爲之賦能,這與 Google Health 的願景 "幫助數十億人保持健康" (Helping billions of people be healthier) 所做出的廣泛努力相契合。

Health Connect 是如何運作的?

Health Connect 支持多種常見的健康和健身數據類型以及類別,其中包括: 活動情況、睡眠質量、營養攝入、體測數據以及重要的體徵信息 (比如心率和血壓)。

經過用戶同意後,開發者們可以通過標準化的架構和 API 調用,安全地從 Health Connect 讀取或寫入數據。用戶對自己的隱私設置持有完全的控制權,Health Connect 爲其提供了精細的粒度來查看哪些 App 在某個時刻請求了數據訪問。Health Connect 產生的所有數據都被加密存放在設備本地,用戶完全可以禁用對 Health Connect 數據的訪問,也可以刪除某些自己不想存放在設備裏的數據。當用戶使用多個同類應用時,Health Connect 還爲其提供了將某個數據源的優先級提高的選項。

開始使用

讓您的應用接入 Health Connect 非常簡單。Health Connect 的這組 API 簡化了權限管理和數據讀寫。下面示例代碼爲您展示了怎樣先請求權限,隨後寫入一些數據。

首先,構造一個您希望請求讀取或寫入的授權權限集合。本例中,我們會讀寫行走步數和心率數據。

private val permissions =
  setOf(
    Permission.createReadPermission(Steps::class),
    Permission.createWritePermission(Steps::class),
    Permission.createReadPermission(HeartRate::class),
    Permission.createWritePermission(HeartRate::class),
  )

// 隨後,爲這組權限創建一個權限請求。您可以使用 ActivityCompat.requestPermissions() 方法。

隨後,發起剛纔創建的權限請求,用戶可以在 Health Connect 的授權界面上賦予有關權限。

當用戶授權後,您就可以讀寫數據了。下面的代碼片段展示了怎樣寫入一段時間內的步數信息。首先,這組數據中包含了此段時間內的總步數、開始和結束時間,以及時區信息。隨後,這組數據會被插入 Health Connect 裏。

private suspend fun writeSomeData(client: HealthConnectClient) {
    val records = mutableListOf<Record>()

    records.add(
      Steps(
        count = 888,
        startTime = START_TIME,
        endTime = END_TIME,
        startZoneOffset = null,
        endZoneOffset = null,
      )
    )
    // 如果有需要的話,可以增加額外的記錄項
}

瞭解更多

Health Connect 現在已對開發者們開放,請參閱以下資源:

如需瞭解更多相關內容,您可以觀看 演講視頻

歡迎您 點擊這裏 向我們提交反饋,或分享您喜歡的內容、發現的問題。您的反饋對我們非常重要,感謝您的支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章