資料類型

Google Fit 會在 com.google 命名空間底下提供一組健康與保健資料類型。

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

  • 同步閱讀或觀察
  • 時間間隔內的統計資料匯總

Google Fit 會定義即時觀察的資料類型和匯總資料類型 資料。資料點是由資料類型欄位的值和時間戳記資訊所組成。 代表即時觀察的點包括時間戳記和 匯總資料類型也包括時間間隔的開始時間。

Google Fit 還可讓您定義新的資料類型。

資料類型群組

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"
},
...
}

授權範圍

授權範圍涵蓋使用者可授權應用程式的資料類型 資源存取權可協助使用者瞭解應用程式需要存取哪些類型的資料。 而且,應用程式 API 也能更輕鬆地授予應用程式使用該資料的權限,因為 以便核准每種資料類型使用者必須先授予這些權限, 下載的應用程式。

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 應用程式權限的最佳做法