セッションを使用すると、ユーザーが行ったすべての主要なアクティビティをリストですばやく簡単に表示できます。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
- データセット A3 の t1 と t2 の間
- データセット C1 の t1 と t2 の間
どのアプリがどのセッションとデータセットを挿入したかがわかります。
セッションを作成する
セッションはいくつかの方法で作成できます。
- アプリは、次のどちらかのセッションを積極的に作成できます。
- ユーザーがデバイス上のアクティビティを積極的に追跡している場合に、リアルタイム(Android のみ)
- 手動で挿入します。
- ユーザーが Google Fit アプリに手動でワークアウトやアクティビティを追加したとき。
セッションを作成するタイミング
睡眠データを追加していますか?
- はい - セッションを作成し、これをフィットネス ストアに手動で挿入します。 例: 睡眠セッションの挿入。これは、睡眠記録のアプリまたはデバイスのユーザーが、睡眠アクティビティの開始と停止のためにデバイスを操作しないためです(これは受動的に追跡されます)。
- いいえ - アプリでは、アクティビティの開始と停止を行えますか?
- いいえ - セッションを作成しません。アプリのデータセットのみを追加してください。
- はい - Android API では、ユーザーがアクティビティをトラッキングする場合はリアルタイムに、または手動でセッションを作成します。REST API を使用して、セッションを作成し、これをフィットネス ストアに手動で挿入します。
- ユーザーがさまざまなアクティビティ(例: ウォーキングとランニング)をより詳細に行っていることをアプリで検出できますか?
- はい - セグメントを追加します。
- いいえ - データセットを追加するだけです。ここでは何も選択せず、Google Fit でセグメントを受動的に作成するようにします。
セッションの読み取り
アプリでは、いくつかの方法でセッションを読み取ることができます。
- 特定のセッションが作成/挿入した特定のセッションを探す
- 名前または
- ID
- 作成または挿入したすべてのセッションを期間で検索できます
- すべてのアプリ(Google Fit を含む)によって作成された、利用可能なすべてのセッションを期間別に検索します
セッションを作成したソースを確認する
各セッションを作成したアプリやデバイスをユーザーに示すことができます。各セッションには、データを収集または変換したアプリやデバイスに関する情報に関連付けられたデータソースが関連付けられています。
Android
現時点では、Android クライアントによって書き込まれたセッションのパッケージ名のみを取得できます。セッションを作成したアプリのパッケージ名を取得するには、getAppPackageName
メソッドを使用します。アプリでこの情報を使用して、フィットネス セッションを挿入した他のアプリを表示できます。各アプリのアイコンを表示すると、ユーザーはアプリを見つけやすくなります。
また、インテントを起動して、他のアプリを起動し、作成したセッションの詳細を確認することもできます。他のアプリは、アプリを起動する意図も発せられる場合があります。
詳しくは、セッションを作成したソースを見つけるをご覧ください。
REST
セッションを作成した Android アプリのパッケージ名を取得するには、session.application
プロパティを使用します。REST API を使用して作成されたセッションの場合は、代わりに session.name
プロパティを使用します。アプリでこの情報を使用して、どのアプリがフィットネス セッションを挿入したかをユーザーに示すことができます。各アプリのアイコンを表示して、ユーザーがそれらを識別できるようにします。
詳しくは、セッションを作成したソースを見つけるをご覧ください。