セッションを使用すると、ユーザーが行ったすべての主なアクティビティのリストをすばやく簡単に確認できます。Google Fit アプリの日記ページに表示されます。たとえば、呼吸セッション、散歩、ランニング、夜間の睡眠はセッションの例です。
セッションは、アクティビティ中に収集された特定の期間のデータセットをグループ化します。たとえば、ユーザーが 3 km のランニングの開始と終了を記録した場合、セッションが作成され、その期間内のすべてのフィットネス データ(歩数、速度、距離など)がそのセッションに関連付けられます。
セッション自体には、アクティビティに関する詳細情報は含まれません。これはデータセット内にあります。セッションには次のプロパティがあります。
- わかりやすいわかりやすい名前(「朝の実行」など)
- 広告文
- 一意の識別子
- キャプチャするアクティビティの種類(ランニングなど)
セッションを使用するメリット
- ユーザーにとって有用: セッションは、ユーザーにとって意味のある方法でアクティビティ データやワークアウトを整理するのに役立ちます。Google Fit アプリの [日誌] ページで、その日のすべてのアクティビティを確認できます。
- 一貫したユーザー エクスペリエンス: アプリまたはコンパニオン デバイスでアクティビティ トラッキング(ユーザーがアクティビティを開始および停止できる)が可能な場合、こうしたワークアウトのセッションがあると、ユーザーは両方のアプリでアクティビティを確認できます。
- より完全なデータ: Google Fit では、複数のソースからのデータを統合して、セッション情報を補完し、充実させることができます。これにより、ユーザーは自分のアクティビティの全体像をより詳細に把握できるようになります。
- Google Fit プラットフォームを活用する: ユーザーがアクティビティを追跡していない場合や、アプリがトラッキングをサポートしていない場合でも、Google Fit でセッションを読み取ることができます。独自のスキーマやストレージを実装しなくても、フィットネス ストアの詳細なデータまたは集計データをクエリして、利用可能なセッションを検索できます。
- ユーザー エンゲージメントの向上: 利用可能なセッションと、セッションを作成したアプリをユーザーに表示できます。このように他のフィットネス アプリとやり取りすると、ユーザー エンゲージメントが向上する可能性があります。
セッションのユーザー承認の取得
セッションの読み取りや書き込みを行うには、アプリでユーザーの権限を取得する必要があります。セッションへのアクセスでは、データ型と同じ認可スコープが使用されます。これは、次のようにリクエストする必要があります。
Android
FitnessOptions
から適切なメソッドを使用して、アプリがアクセスする必要があるセッションのタイプを指定します。たとえば、ランニングに関連するセッションを読み取るには、次のように選択します。
val fitnessOptions = FitnessOptions.builder()
.accessActivitySessions(FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_SPEED, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
.build()
この例では、アプリがアクティビティ セッションのメタデータにアクセスすることと、それらのセッションで読み取るデータタイプも指定しています。この例では、心拍数、速度、位置情報のデータタイプが使用されています。
REST
リクエストのスコープは次のとおりです。
- 睡眠アクティビティ タイプのセッション:
https://www.googleapis.com/auth/fitness.sleep.read
https://www.googleapis.com/auth/fitness.sleep.write
- 他のすべてのセッション:
https://www.googleapis.com/auth/fitness.activity.read
https://www.googleapis.com/auth/fitness.activity.write
セッションの使用
Android
Sessions API を使用すると、次のことができます。
- リアルタイムでセッションを作成する
- フィットネス ストアでセッションを挿入する
- アクティビティ セグメントを挿入して、ワークアウト中の一時停止をサポートする
- 関連するセッションとデータセットを読み取る
- 別のアプリを起動して、作成されたセッションに関する情報を表示する
- 別のアプリがセッションを開始したときにインテントを受信する
REST
Sessions API を使用すると、次のことができます。
- リアルタイムでセッションを作成する
- フィットネス ストアでセッションを挿入する
- アクティビティ セグメントを挿入して、ワークアウト中の一時停止をサポートする
- 関連するセッションとデータセットを読み取る
データセットとセグメントがセッションと連携する仕組み
Google Fit の場合:
- データセットは、特定の期間に特定のデータソースから収集された一連のデータポイントを表します。データセットは独自に挿入できます。ただし、セッションを作成する場合は、セッションとそのデータセットを一緒に作成する方が簡単な場合があります。
- セグメントは、ユーザーがセッションで行っていた正確なアクティビティごとに、セッション内のデータセットをグループ化します。たとえば、ユーザーが 30 分間のランニング(セッション)を記録し、その間に少し歩いた場合は、セグメントに分割できます。ランニングのセグメント、ウォーキングの休憩、再びランニングのセグメントがあります。
図 1 は、アプリ A、B、C がデータセットとセッションを挿入したフィットネス ストアの時間間隔を示しています。
- アプリ A は、データセット A1 と A2 をセッション 1 と A3 とともに、セッションとは独立して挿入しました。
- アプリ B は、データセット B1 と B2 をセッション 2 とともに挿入しました。
- アプリ C は、セッションとは独立してデータセット C1 を挿入しました。
フィットネス ストアからセッション データを読み取ると、セッションの作成後にデータを挿入したり、データが受動的にトラッキングされた後にセッションを作成したりする場合でも、セッションの時間間隔内のすべてのフィットネス データが自動的にそのセッションに関連付けられます。たとえば、セッション 1 のフィットネス データをクエリすると、次のような結果が返されます。
- データセット A1
- データセット A2
- t1 と t2 の間のデータセット A3 の部分
- t1 と t2 の間のデータセット C1 の部分
どのアプリが各セッションとデータセットを挿入したかがわかります。
セッションを作成する
セッションはいくつかの方法で作成できます。
- アプリは次のいずれかで積極的にセッションを作成できます。
- ユーザーがデバイスでアクティビティを積極的に記録している場合(Android のみ)、リアルタイム
- 手動で挿入する。
- ユーザーが Google Fit アプリに手動でワークアウトやアクティビティを追加したとき。
セッションを作成するタイミング
睡眠データは追加されていますか?
- はい - セッションを作成し、手動でフィットネス ストアに挿入します。 たとえば、睡眠セッションを挿入します。これは、睡眠トラッキング アプリやデバイスを使用するユーザーは、デバイスを操作して睡眠アクティビティの開始や停止を行わないためです(これは受動的に追跡されます)。
- いいえ - ユーザーはアクティビティを開始、停止できますか?
- いいえ - セッションを作成しません。アプリからデータセットのみを追加します。
- ○ - Android API を使用して、ユーザーがアクティビティをトラッキングする場合はリアルタイムに、または手動でセッションを作成します。REST API を使用して、セッションを作成し、手動でフィットネス ストアに挿入します。
- アプリは、ユーザーが異なるアクティビティを詳細なレベルで行っていること(ウォーキングとランニングなど)を検出できますか?
- はい - セグメントを追加します。
- いいえ - データセットの追加のみを行います。ここではセグメントを無視して、Google Fit で受動的に作成します。
セッションの読み取り
アプリでは、いくつかの方法でセッションを読み取ることができます。
- 作成/挿入された特定のセッションを探します。
- 名前または
- ID
- そのセッションが作成または挿入したすべてのセッションを期間別に探す
- すべてのアプリ(Google Fit を含む)で作成された、参加可能なすべてのセッションを期間別に探す
セッションを作成したソースを確認する
各セッションを作成したアプリやデバイスをユーザーに示すことができます。各セッションにはデータソースが関連付けられ、データソースには、データを収集または変換したアプリやデバイスに関する情報が含まれています。
Android
現時点では、Android クライアントによって書き込まれたセッションのパッケージ名のみを取得できます。セッションを作成したアプリのパッケージ名を取得するには、getAppPackageName
メソッドを使用します。アプリでこの情報を使用して、フィットネス セッションを挿入した他のアプリをユーザーに表示できます。これらの各アプリのアイコンを表示して、ユーザーが識別できるようにします。
また、インテントを起動して別のアプリを起動して、そのアプリが作成したセッションの詳細を表示することもできます。他のアプリでも、インテントを起動してアプリを起動できます。
詳しくは、セッションを作成したソースを確認するをご覧ください。
REST
セッションを作成した Android アプリのパッケージ名を取得するには、session.application
プロパティを使用します。REST API を使用して作成されたセッションの場合は、代わりに session.name
プロパティを使用します。アプリ内でこの情報を使用して、フィットネス セッションを挿入した他のアプリをユーザーに表示できます。各アプリのアイコンを表示して、ユーザーが簡単に見分けられるようにできます。
詳しくは、セッションを作成したソースを確認するをご覧ください。