資料類型

Google 健身應用程式會在 com.google 命名空間下提供一組健康與健身資料類型。

資料類型會定義資料點內值的格式。資料點可代表:

  • 即時讀取或觀察
  • 一段時間間隔內的匯總統計資料

Google Fit 會定義即時觀測的資料類型,以及匯總資料的資料類型。資料點包含資料類型欄位的值和時間戳記資訊。代表即時觀測結果的點包含時間戳記,而代表匯總資料類型的點也包含間隔的開始時間。

Google 健身也能讓你定義新的資料類型。

資料類型群組

Google Fit 支援下列資料類型:

公開資料類型
平台提供的標準資料類型會加上「com.google」前置字串。例如 com.google.step_count.delta。這些資料類型會擷取健康與保健資料的即時讀數,包括健身活動、睡眠和營養。任何應用程式都可以要求相關權限,讀取及寫入這些資料類型,但有幾種位置資料例外,只能由寫入這些資料的應用程式讀取。

如需詳細資訊,請參閱:

健康資料類型
平台提供的資料類型,因可能含有敏感資料而受到存取限制。詳情請參閱「健康資料類型」。
匯總資料類型
讀取依時間或活動類型匯總的健康與健身資訊。詳情請參閱匯總資料類型
私人自訂資料類型
特定應用程式定義的自訂資料類型。只有定義資料類型的應用程式可以讀取及寫入這類資料。詳情請參閱「自訂資料類型」。

使用資料類型

Android

在 Android 上,資料類型定義為 DataType 類別的公開欄位。如何使用資料類型叫用 Fitness API,取決於您想完成的工作:

  • 如要記錄資料,請使用 Recording API 為要記錄的每個資料類型建立訂閱項目。
  • 如要讀取資料,請使用 History API,針對每個資料類型提交讀取要求。
  • 如要插入過去的歷史資料,請使用 History API 為每種資料類型提交插入要求。
  • 如要建立工作階段,請使用 Sessions API 插入或記錄含有工作階段中繼資料的資料。

如要為即時 DataType 物件建立資料點,請指派格式正確的值。以下範例說明如何將食物項目指派為字串、將餐點類型指派為 Field 類別的常數,以及將營養成分指派為對應的浮點值。

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

在應用程式中設定資料點後,您可以使用 History API 插入、讀取或刪除歷來資料。

REST

dataSources 資源包含每個資料來源的資料類型 (以及欄位清單)。建立資料來源時,您可以指定其中一種資料類型,並在從健身資料儲存庫擷取資料來源時,取得資料類型名稱和欄位清單。

舉例來說,資料來源表示法會指定資料類型,如下所示:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

授權範圍

授權範圍涵蓋使用者可授權應用程式存取的一組資料類型。協助使用者瞭解應用程式想存取的資料類型。此外,使用者不必逐一核准每種資料類型,就能輕鬆授權應用程式使用這些資料。使用者下載應用程式後,就會授予這些權限。

OAuth 範圍同意畫面範例
圖 2. OAuth 範圍同意畫面。

對少數使用者測試完應用程式後,請先根據與這些資料類型相關的範圍申請驗證,再發布應用程式。請詳閱上方連結的資料類型頁面,瞭解各資料類型適用的範圍。

舉例來說,如果應用程式需要讀取及寫入血壓資料,就必須宣告會執行讀取和寫入作業,並要求這兩種範圍。如果應用程式只會將血壓資料寫入 Google Fit 平台,則只需要要求寫入範圍。

請審慎選擇資料類型。請勿要求所有資料類型,以免應用程式可能需要。系統會根據您指定的類型,提示使用者授予哪些範圍的權限。只要求應用程式需要的資料類型,這樣使用者比較可能授予存取權。使用者會更願意授予存取權給範圍有限且說明清楚的應用程式。

請使用下表檢查應用程式需要存取的範圍是否為敏感或受限制的範圍 (這會決定您需要遵循的驗證步驟):

範圍 說明 類別
https://www.googleapis.com/auth/fitness.activity.read 從 Google Fit 平台讀取活動資料。 受限制
https://www.googleapis.com/auth/fitness.activity.write 將活動記錄寫入 Google Fit 平台 受限制
https://www.googleapis.com/auth/fitness.blood_glucose.read 從 Google Fit 平台讀取血糖資料。 受限制
https://www.googleapis.com/auth/fitness.blood_glucose.write 將血糖資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.blood_pressure.read 從 Google Fit 平台讀取血壓資料。 受限制
https://www.googleapis.com/auth/fitness.blood_pressure.write 將血壓資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.body.read 從 Google Fit 平台讀取身體測量資料 (身高、體重、體脂率)。 受限制
https://www.googleapis.com/auth/fitness.body.write 將身體測量資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.body_temperature.read 從 Google Fit 平台讀取體溫資料。 受限制
https://www.googleapis.com/auth/fitness.body_temperature.write 將體溫資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.heart_rate.read 從 Google Fit 平台讀取心率資料。 受限制
https://www.googleapis.com/auth/fitness.heart_rate.write 將心率資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.location.read 從 Google Fit 平台讀取位置資料。 受限制
https://www.googleapis.com/auth/fitness.location.write 將位置資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.nutrition.read 從 Google Fit 平台讀取營養資料。 受限制
https://www.googleapis.com/auth/fitness.nutrition.write 將營養資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.oxygen_saturation.read 從 Google Fit 平台讀取血氧濃度資料。 受限制
https://www.googleapis.com/auth/fitness.oxygen_saturation.write 將血氧濃度資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.reproductive_health.read 從 Google Fit 平台讀取生殖健康資料。 受限制
https://www.googleapis.com/auth/fitness.reproductive_health.write 將生殖健康資料寫入 Google Fit 平台。 受限制
https://www.googleapis.com/auth/fitness.sleep.read 從 Google Fit 平台讀取睡眠資料。 受限制
https://www.googleapis.com/auth/fitness.sleep.write 將睡眠資料寫入 Google Fit 平台。 受限制

在現有應用程式中新增範圍

更新應用程式以要求新範圍時 (例如新增睡眠或心率範圍,或新增讀取範圍),系統會提示使用者應用程式要求存取這些範圍,使用者可以選擇授予或拒絕存取權。

最佳做法是在需要資源時,要求使用者授權。請按照遞增授權的申請指南操作。

如果使用者瞭解應用程式使用這類資料的原因/方式,就越可能授予存取權:

  • 建議您新增畫面,警告/告知使用者系統會要求這些範圍。
  • 清楚說明應用程式要求存取這些範圍/資料的原因,讓使用者在充分瞭解相關資訊的情況下決定是否要授予權限。

進一步瞭解 Android 應用程式權限的最佳做法