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

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

始める

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

dependencies {
  implementation("androidx.health.connect:connect-client:1.2.0-alpha06")
}

フィーチャー トグル

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

表: ヘルスコネクト機能の提供状況フラグ
フィーチャー トグル データ型 関連ガイド
FEATURE_ACTIVITY_INTENSITY アクティビティの強度 ワークアウト
FEATURE_EXTENDED_DEVICE_TYPES 拡張デバイスタイプ メタデータの要件
FEATURE_MATCHMAKING マッチメイキング
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 ロジックに適切なフォールバックを用意します。