Google Fit APIとHealth Connect APIのまとめ

## [Fit Android API(Google Fit)](https://developers.google.com/fit/android?hl=ja)

#### できること

【アクティビティ】
- アクティビティ/エクササイズの種類(TYPE_ACTIVITY_SEGMENT)
- サイクリングのペダリングのリズム（TYPE_CYCLING_PEDALING_CADENCE）
- サイクリングのペダリング数（TYPE_CYCLING_PEDALING_CUMULATIVE）
- サイクリングのホイールの回転数（TYPE_CYCLING_WHEEL_REVOLUTION）
- サイクリングのホイールの１分間の回転数（TYPE_CYCLING_WHEEL_REVOLUTION）
- 移動距離（TYPE_DISTANCE_DELTA）
- 位置情報（TYPE_LOCATION_SAMPLE）
- 活動時間（TYPE_MOVE_MINUTES）
- エクササイズ中に生成した電力（TYPE_POWER_SAMPLE）
- 速度（TYPE_SPEED）
- 歩数（TYPE_STEP_COUNT_CADENCE）
- 歩数（TYPE_STEP_COUNT_DELTA）
- エクササイズの種類（TYPE_WORKOUT_EXERCISE）

【月経周期の管理】
- 頸管粘液(TYPE_CERVICAL_MUCUS)
- 子宮頸部位置（TYPE_CERVICAL_POSITION）
- 月経周期（TYPE_MENSTRUATION）
- 排卵検査（TYPE_OVULATION_TEST）
- 月経間出血 (スポッティングとも呼ばれる)(TYPE_VAGINAL_SPOTTING)

【身体測定】
- 身長（TYPE_HEIGHT）
- 体重（TYPE_WEIGHT）

【栄養】
- 摂取した水分量（TYPE_HYDRATION）
- 栄養量（TYPE_NUTRITION）

【睡眠】
- 覚醒（AWAKE）
- ベッドから出た（OUT_OF_BED）
- 睡眠（SLEEP）
- 深い睡眠（SLEEP_DEEP）
- 浅い睡眠（SLEEP_LIGHT）
- レム睡眠（SLEEP_REM）

【主な指標】
- 安静時の基礎代謝率（TYPE_BASAL_METABOLIC_RATE）
- 総脂肪量のパーセンテージ（TYPE_BODY_FAT_PERCENTAGE）
- 消費カロリー数（TYPE_CALORIES_EXPENDED）
- 心拍数（TYPE_HEART_POINTS）
- １分間の拍数（TYPE_HEART_RATE_BPM）
- 血中グルコース濃度（TYPE_BLOOD_GLUCOSE）
- 血圧（TYPE_BLOOD_PRESSURE）
- 体温（TYPE_BODY_TEMPERATURE）
- 血中酸素飽和度（TYPE_OXYGEN_SATURATION）

#### 懸念点・注意点

- **Google Fit Android API は非推奨になっており、2024 年末に廃止される予定。**

## [Health Connect API(ヘルスコネクト)](https://developer.android.com/guide/health-and-fitness/health-connect?hl=ja)

#### できること

【アクティビティ】
- 推定活動エネルギー(ActiveCaloriesBurnedRecord)
- サイクリングのペダリングのリズム(CyclingPedalingCadenceRecord)
- 移動した距離(DistanceRecord)
- 移動した標高(ElevationGainedRecord)
- ラップタイム(ExerciseLap)
- ルート(ExerciseRoute)
- エクササイズの種類(ExerciseSegment)
- エクササイズの記録(ExerciseSessionRecord)
- 階段を登った回数(FloorsClimbedRecord)
- エクササイズ中に生成した電力(PowerRecord)
- エクササイズ中の速度(SpeedRecord)
- 歩調(StepsCadenceRecord)
- 歩数(StepsRecord)
- 車椅子の押しの回数(WheelchairPushesRecord)

【身体測定】
- 身長(HeightRecord)
- 除脂肪体重(LeanBodyMassRecord)
- 体重(WeightRecord)

【月経周期の管理】
- 頸管粘液の説明(CervicalMucusRecord)
- 月経間出血 (スポッティングとも呼ばれる)(IntermenstrualBleedingRecord)
- 月経血の量 (軽い、中程度、または多い)(MenstruationFlowRecord)
- 月経期間(MenstruationPeriodRecord)
- 排卵検査の結果(OvulationTestRecord)
- 性行為の発生(SexualActivityRecord)

【栄養】
- 摂取した水分量(HydrationRecord)
- 摂取した栄養素(NutritionRecord)

【睡眠】
- 覚醒(STAGE_TYPE_AWAKE)
- ベッド内での覚醒(STAGE_TYPE_AWAKE_IN_BED)
- 深い睡眠(STAGE_TYPE_DEEP)
- 浅い睡眠(STAGE_TYPE_LIGHT)
- ベッドから出た(STAGE_TYPE_OUT_OF_BED)
- レム睡眠(STAGE_TYPE_REM)
- 睡眠（深い・浅い・レムのいずれも該当しない）(STAGE_TYPE_SLEEPING)
- 不明(STAGE_TYPE_UNKNOWN)
- 睡眠時間(SLEEP_DURATION_TOTAL)

【主な指標】
- 安静時体温(BasalBodyTemperatureRecord)
- BMR(basal metabolic rate/基礎代謝率)(BasalMetabolicRateRecord)
- グルコース濃度(BloodGlucoseRecord)
- 血圧(BloodPressureRecord)
- 体脂肪率(BodyFatRecord)
- 体温(BodyTemperatureRecord)
- 体内水分量(BodyWaterMassRecord)
- 骨量(BoneMassRecord)
- 心拍数(HeartRateRecord)
- 心拍数変動(HeartRateVariabilityRmssdRecord)
- 血中酸素量(OxygenSaturationRecord)
- 呼吸数(RespiratoryRateRecord)
- 安静時の心拍数(RestingHeartRateRecord)
- 消費総エネルギー(TotalCaloriesBurnedRecord)
- VO2 max(人が体内に取り込むことのできる酸素の一分間あたりの最大量)(Vo2MaxRecord)
 
#### 懸念点・注意点

- ヘルスコネクト SDK は Android 8（API レベル 26）以降をサポートするが、ヘルスコネクト アプリが対応するのは Android 9（API レベル 28）から。つまり、サードパーティ製アプリは Android 8 のユーザーをサポート可能だが、ヘルスコネクトを使用できるユーザーは Android 9 以降のユーザーに限られる。->**Android 9以降のユーザーが対象と考えたほうが無難。**

- データのバックグラウンドでの読み取りアクセス権がない(ユーザーのプライバシー保護の強化のため)。->**フォアグラウンドでのみデータの読み取りが可能。**

- Wear OS では、[Health Services API](https://developer.android.com/training/wearables/health-services?hl=ja) を使用しているため、ヘルスコネクト アプリを利用できない。 ->　**Wear OSでの開発ではHealth Services APIを使用する必要がある。**

- ヘルスコネクトのストレージはデバイス上に用意される。->クラウドではない。

- ヘルスコネクト SDK は Kotlin でのみ利用可能。※今後Java対応の可能性はある。

- アプリにヘルスコネクトのデータ型に対する読み取りまたは書き込みのアクセス権を付与するには、デベロッパー申告フォームに記入してリクエストが必要。->**アプリを製品版にリリース（アップデート）する前に行う必要がある。**

- デバイスにGoogle Play 開発者サービスが搭載されている必要がある。

- ユーザーのヘルスケアデータの第３者への譲渡は基本的に不可。（例外あり）

- 子供を対象としたアプリではヘルスコネクトは実装できない。

### 引用
[健康的な暮らしに役立つ！ヘルスコネクトの特徴を紹介](https://www.android.com/intl/ja_jp/articles/healthconnect202305/#section-4)
[Wear OS のヘルスサービス](https://developer.android.com/training/wearables/health-services?hl=ja)
[ヘルスコネクトと Google Fit の違いは何ですか？](https://developer.android.com/guide/health-and-fitness/health-connect/frequently-asked-questions?hl=ja#health-connect-vs-fit)
[ヘルスコネクトのポリシー要件に関するよくある質問](https://support.google.com/googleplay/android-developer/answer/12991134?hl=ja)
[Android の権限によるヘルスコネクト](https://support.google.com/googleplay/android-developer/answer/9888170?sjid=5313329471955426271-AP#ahp)
[Google Fit のヘルスコネクト](https://support.google.com/fit/answer/12830119?hl=ja)
[ヘルスコネクトを使ってみる](https://support.google.com/android/answer/12201227?hl=ja)
[健康やフィットネス情報を管理する Android アプリ「ヘルスコネクト」が日本の 6 アプリと順次連携](https://japan.googleblog.com/2023/04/healthconnect.html)
[ヘルスコネクト](https://developer.android.com/guide/health-and-fitness/health-connect?hl=ja)
[Google Fit プラットフォームで魅力的なフィットネス アプリを作成する](https://developer.android.com/distribute/best-practices/engage/google-fit?hl=ja)