機能の提供状況を確認する

ヘルスコネクトに新機能が追加されても、ユーザーがヘルスコネクトのバージョンを更新するとは限りません。Feature Availability API は、ヘルスコネクトの機能がユーザーのデバイスで利用可能かどうかを確認し、どのようなアクションを実行するかを決定する方法です。

始める

Feature Availability API は、Health Connect SDK と同じ依存関係を共有します。まず、build.gradle ファイルにバージョン 1.1.0-alpha08 以降が含まれていることを確認します。

dependencies {
  implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}

フィーチャー トグル

Health Connect で利用可能な機能フラグを次の表に示します。ユーザーのデバイスがその機能をサポートしていない場合、フィーチャー トグルの背後にある機能は使用できません。

表: ヘルスコネクトの機能の利用可能性フラグ
フィーチャー トグル データ型 関連ガイド
FEATURE_ACTIVITY_INTENSITY アクティビティの強度
FEATURE_EXTENDED_DEVICE_TYPES 拡張デバイスタイプ メタデータの要件
FEATURE_PERSONAL_HEALTH_RECORD 医療記録 医療記録のデータ形式
医療データを書き込む
医療データを読み取る
FEATURE_MINDFULNESS_SESSION マインドフルネス マインドフルネスを記録する
FEATURE_PLANNED_EXERCISE 計画済みのエクササイズ トレーニング プラン
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND バックグラウンドでデータを読み取る バックグラウンド読み取りの例
FEATURE_READ_HEALTH_DATA_HISTORY 過去のデータを読み取る 30 日以上前のデータを読み取る
FEATURE_SKIN_TEMPERATURE 皮膚温 皮膚温を測定する

チェックを実行する

機能の利用可能性をチェックする主な関数は getFeatureStatus() です。これにより、整数定数 FEATURE_STATUS_AVAILABLE または FEATURE_STATUS_UNAVAILABLE が返されます。

ユーザーのデバイスがヘルスコネクトのバックグラウンドでの健康データの読み取りをサポートしているかどうかを判断するには、クライアントで FEATURE_READ_HEALTH_DATA_IN_BACKGROUND の可用性を確認します。

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

使用可能なすべての機能フラグの一覧については、HealthConnectFeatures リファレンス ページをご覧ください。

機能が利用できない場合の処理

ユーザーのデバイスで機能が利用できない場合、アップデートによって利用できるようになることがあります。デバイスにサポートされている最新バージョンがインストールされていない場合は、ヘルスコネクトを更新するようユーザーに案内することを検討してください。ただし、APK(Android 13 以前)を使用しているユーザーは、Android 14 以降を搭載したデバイスでのみ利用可能なシステム モジュール機能を使用できません。

拡張デバイスタイプの場合、ユーザーのデバイスで FEATURE_EXTENDED_DEVICE_TYPES が利用できない場合、これらの値は Device.TYPE_UNKNOWN として扱われます。書き込みロジックと UI ロジックで適切なフォールバックを提供します。