メタデータの要件

このガイドは、Health Connect バージョン 1.1.0-alpha12 に対応しています。

リリース 1.1.0-alpha12 にアップグレードするデベロッパー向けに、ヘルスコネクトのメタデータが変更されています。

ライブラリ情報

Google Maven Android Gradle プラグインのアーティファクト ID は、アップグレードする必要があるヘルスコネクト ライブラリを識別します。ヘルスコネクト SDK の依存関係をモジュール レベルの build.gradle ファイルに追加します。

dependencies {
  implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}

メタデータの変更

バージョン 1.1.0-alpha12 の ヘルスコネクト Jetpack SDK に 2 つのメタデータの変更が導入され、エコシステムに追加の有用なメタデータが存在するようにしました。

Record() 型のオブジェクトをインスタンス化するたびに、メタデータの詳細を指定する必要があります。

ヘルスコネクトにデータを書き込む場合は、次の 4 つの記録方法のいずれかを指定する必要があります。

録画方法 説明
RECORDING_METHOD_UNKNOWN 録音方法を確認できません。
RECORDING_METHOD_MANUAL_ENTRY ユーザーがデータを入力しました。
RECORDING_METHOD_AUTOMATICALLY_RECORDED デバイスまたはセンサーがデータを記録した。
RECORDING_METHOD_ACTIVELY_RECORDED ユーザーがデバイスで録画セッションの開始または終了を開始した。

例:

StepsRecord(
    startTime \= Instant.ofEpochMilli(1234L),
    startZoneOffset \= null,
    endTime \= Instant.ofEpochMilli(1236L),
    endZoneOffset \= null,
    metadata \= Metadata.manualEntry(),
    Count \= 10,
)

自動的に記録されるデータとアクティブに記録されるデータにはすべて、デバイスタイプを指定する必要があります。現在のデバイスタイプは次のとおりです。

デバイスのタイプ 説明
TYPE_UNKNOWN デバイスの種類は不明です。
TYPE_WATCH デバイスの種類がスマートウォッチである。
TYPE_PHONE デバイスの種類がスマートフォンであること。
TYPE_SCALE デバイスの種類は体重計です。
TYPE_RING デバイスの種類がリングである。
TYPE_HEAD_MOUNTED デバイスのタイプがヘッドマウント デバイスである。
TYPE_FITNESS_BAND デバイスの種類はフィットネス バンドです。
TYPE_CHEST_STRAP デバイスの種類はチェストストラップです。
TYPE_SMART_DISPLAY デバイスの種類がスマート ディスプレイである。

例:

private val TEST_DEVICE = Device(type = Device.TYPE_PHONE)

スニペットを更新しました

新しいメタデータ要件に準拠するために新しいスニペットが必要な箇所はすべて、ヘルスコネクト ガイドが更新されています。例については、データを書き込むをご覧ください。

新しいメタデータ メソッド

メタデータを直接インスタンス化することはできなくなったため、ファクトリ メソッドのいずれかを使用してメタデータの新しいインスタンスを取得します。各関数には 3 つの署名バリアントがあります。

  • activelyRecorded

    • fun activelyRecorded(device: Device): Metadata.
    • fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
    • fun activelyRecordedWithId(id: String, device: Device): Metadata
  • autoRecorded

    • fun autoRecorded(device: Device): Metadata
    • fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
    • fun autoRecordedWithId(id: String, device: Device): Metadata
  • manualEntry

    • fun manualEntry(device: Device? = null): Metadata
    • fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
    • fun manualEntryWithId(id: String, device: Device? = null): Metadata
  • unknownRecordingMethod

    • fun unknownRecordingMethod(device: Device? = null): Metadata
    • fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
    • fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata

詳しくは、Android オープンソース プロジェクトをご覧ください。

テストデータ

Testing Library を使用して、想定されるメタデータ値をモックします。

private val TEST_METADATA =
    Metadata.unknownRecordingMethod(
        clientRecordId = "clientId",
        clientRecordVersion = 1L,
        device = Device(type = Device.TYPE_UNKNOWN),
    ).populatedWithTestValues(id = "test")

これは、レコードの挿入時にこれらの値が自動的に入力されるヘルスコネクト実装の動作をシミュレートします。

テスト ライブラリの場合は、このヘルスコネクト SDK の依存関係をモジュール レベルの build.gradle ファイルに追加する必要があります。

dependencies {
  testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}

ライブラリをアップグレードする

主な手順は次のとおりです。

  1. ライブラリを 1.1.0-alpha12 にアップグレードします。

  2. ライブラリをビルドするときに、新しいメタデータが必要な場所でコンパイル エラーが発生します。そのため、Record() 型のオブジェクトがインスタンス化されるたびに、必要なメタデータの変更を実装してください。これにより、移行が完了します。