Google Fit REST API を含む Google Fit API は、2026 年に非推奨になります。2024 年 5 月 1 日より、デベロッパーはこれらの API の使用を登録できなくなります。
移行先の API またはプラットフォームの手順については、ヘルスコネクトの移行ガイドをご覧ください。ヘルスコネクトと Google Fit API および Fitbit Web API の比較については、ヘルスコネクトの比較ガイドをご覧ください。
ヘルスコネクトの詳細と API との統合方法をご覧ください。
フィットネス データの記録
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Recording API を使用すると、アプリからセンサーデータの自動保存を
サブスクリプションを作成してバッテリー効率を改善します。定期購入が関連付けられています
フィットネスのデータタイプまたは特定のデータで
あります。
データ型やデータソースごとに複数のサブスクリプションを作成できます。
説明しますGoogle Fit では、アクティブなサブスクリプションのフィットネス データ、
定期購入はアプリが実行されていない状態でも復元され、
サポートします。
記録されたデータは、ユーザーのフィットネス履歴から利用できます。さらに
アプリでデータをリアルタイムで表示するには、
Sensors API と Recording API。録画
使用する場合は、
Sessions API。
フィットネス データを定期購入する
アプリでセンサーデータのバックグラウンドでの収集をリクエストするには、
RecordingClient.subscribe
メソッドを呼び出します。次のコード スニペットをご覧ください。
Kotlin
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
// This example shows subscribing to a DataType, across all possible data
// sources. Alternatively, a specific DataSource can be used.
.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener {
Log.i(TAG, "Successfully subscribed!")
}
.addOnFailureListener { e ->
Log.w(TAG, "There was a problem subscribing.", e)
}
Java
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
// This example shows subscribing to a DataType, across all possible
// data sources. Alternatively, a specific DataSource can be used.
.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener(unused ->
Log.i(TAG, "Successfully subscribed!"))
.addOnFailureListener( e ->
Log.w(TAG, "There was a problem subscribing.", e));
定期購入が正常に追加されると、Google Fit にフィットネス データが保存されます。
型のデータ
TYPE_STEP_COUNT_DELTA
アプリに代わってフィットネス履歴に保存されます。この定期購入は次の場所に表示されます:
アプリのアクティブな定期購入のリスト。
アプリで他の種類のフィットネス データもサブスクライブするには、
毎回異なるフィットネス データタイプを指定します。
アクティブなサブスクリプションを一覧表示する
アプリの有効な定期購入のリストを取得するには、
RecordingClient.listSubscriptions
メソッドを呼び出します。次のコード スニペットをご覧ください。
Kotlin
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
.listSubscriptions()
.addOnSuccessListener { subscriptions ->
for (sc in subscriptions) {
val dt = sc.dataType
Log.i(TAG, "Active subscription for data type: ${dt.name}")
}
}
Java
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
.listSubscriptions()
.addOnSuccessListener(subscriptions -> {
for (Subscription sc : subscriptions) {
DataType dt = sc.getDataType();
Log.i(TAG, "Active subscription for data type: ${dt.name}");
}
});
}
フィットネス データの登録解除
アプリでのセンサーデータの収集を停止するには、
RecordingClient.unsubscribe
メソッドを呼び出します。次のコード スニペットをご覧ください。
Kotlin
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
// This example shows unsubscribing from a DataType. A DataSource should
// be used where the subscription was to a DataSource. Alternatively, if
// the client doesn't maintain its subscription information, they can use
// an element from the return value of listSubscriptions(), which is of
// type Subscription.
.unsubscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener {
Log.i(TAG,"Successfully unsubscribed.")
}
.addOnFailureListener { e->
Log.w(TAG, "Failed to unsubscribe.")
// Retry the unsubscribe request.
}
Java
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
// This example shows unsubscribing from a DataType. A DataSource
// should be used where the subscription was to a DataSource.
// Alternatively, if the client doesn’t maintain its subscription
// information, they can use an element from the return value of
// listSubscriptions(), which is of type Subscription.
.unsubscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener(unused ->
Log.i(TAG,"Successfully unsubscribed."))
.addOnFailureListener(e -> {
Log.w(TAG, "Failed to unsubscribe.");
// Retry the unsubscribe request.
});
}
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-31 UTC。
[null,null,["最終更新日 2025-08-31 UTC。"],[[["\u003cp\u003eThe Recording API enables your app to automatically store sensor data in a battery-efficient way through subscriptions, which are linked to your app and specify a data type or source.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Fit retains fitness data from active subscriptions even when your app is inactive, and these subscriptions are automatically restored upon system restart.\u003c/p\u003e\n"],["\u003cp\u003eYou can manage your active data subscriptions by listing existing ones and unsubscribing from specific data types as needed.\u003c/p\u003e\n"],["\u003cp\u003eTo display real-time data alongside recorded historical data in your app, consider using the Recording API in conjunction with the Sensors API.\u003c/p\u003e\n"]]],[],null,["# Record fitness data\n\nThe Recording API lets your app request automated storage of sensor data in a\nbattery-efficient manner by creating subscriptions. A subscription is associated\nwith an Android app and consists of a fitness data type or a specific data\nsource.\n\nYou can create multiple subscriptions for different data types or data sources\nin your app. Google Fit stores fitness data from active subscriptions,\neven when your app isn't running, and it restores these subscriptions when the\nsystem restarts.\n\nThe recorded data is available in the user's fitness history. If you also want\nto show the data in your app in real time, use the\n[Sensors API](/fit/android/sensors) together with the Recording API. To record\nfitness data with session metadata, use the\n[Sessions API](/fit/android/using-sessions).\n| **Note:** For best practices when you manage user data, see [Google Fit Developer and User Data Policy](/fit/policy).\n\nSubscribe to fitness data\n-------------------------\n\nTo request background collection of sensor data in your app, use the\n[`RecordingClient.subscribe`](/android/reference/com/google/android/gms/fitness/RecordingClient)\nmethod, as shown in the following code snippet: \n\n### Kotlin\n\n```kotlin\nFitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))\n // This example shows subscribing to a DataType, across all possible data\n // sources. Alternatively, a specific DataSource can be used.\n .subscribe(DataType.TYPE_STEP_COUNT_DELTA)\n .addOnSuccessListener {\n Log.i(TAG, \"Successfully subscribed!\")\n }\n .addOnFailureListener { e -\u003e\n Log.w(TAG, \"There was a problem subscribing.\", e)\n }\n```\n\n### Java\n\n```java\nFitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))\n // This example shows subscribing to a DataType, across all possible\n // data sources. Alternatively, a specific DataSource can be used.\n .subscribe(DataType.TYPE_STEP_COUNT_DELTA)\n .addOnSuccessListener(unused -\u003e\n Log.i(TAG, \"Successfully subscribed!\"))\n .addOnFailureListener( e -\u003e\n Log.w(TAG, \"There was a problem subscribing.\", e));\n```\n\nIf the subscription is added successfully, Google Fit stores fitness\ndata of type\n[`TYPE_STEP_COUNT_DELTA`](/android/reference/com/google/android/gms/fitness/data/DataType#TYPE_STEP_COUNT_DELTA)\nin the fitness history on behalf of your app. This subscription appears in the\nlist of active subscriptions for your app.\n\nTo subscribe to more types of fitness data in your app, follow the steps in the\nprevious example but provide a different fitness data type each time.\n| **Note:** Apps that run on Android 10 (API level 29) or higher must [get an Android permission](/fit/android/authorization#requesting_android_permissions) when they record some physical activity data types.\n\nList active subscriptions\n-------------------------\n\nTo get a list of the active subscriptions for your app, use the\n[`RecordingClient.listSubscriptions`](/android/reference/com/google/android/gms/fitness/RecordingClient)\nmethod, as shown in the following code snippet: \n\n### Kotlin\n\n```kotlin\nFitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))\n .listSubscriptions()\n .addOnSuccessListener { subscriptions -\u003e\n for (sc in subscriptions) {\n val dt = sc.dataType\n Log.i(TAG, \"Active subscription for data type: ${dt.name}\")\n }\n }\n```\n\n### Java\n\n```java\nFitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))\n .listSubscriptions()\n .addOnSuccessListener(subscriptions -\u003e {\n for (Subscription sc : subscriptions) {\n DataType dt = sc.getDataType();\n Log.i(TAG, \"Active subscription for data type: ${dt.name}\");\n }\n });\n}\n```\n\nUnsubscribe from fitness data\n-----------------------------\n\nTo stop the collection of sensor data in your app, use the\n[`RecordingClient.unsubscribe`](/android/reference/com/google/android/gms/fitness/RecordingClient)\nmethod, as shown in the following code snippet: \n\n### Kotlin\n\n```kotlin\nFitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))\n // This example shows unsubscribing from a DataType. A DataSource should\n // be used where the subscription was to a DataSource. Alternatively, if\n // the client doesn't maintain its subscription information, they can use\n // an element from the return value of listSubscriptions(), which is of\n // type Subscription.\n .unsubscribe(DataType.TYPE_STEP_COUNT_DELTA)\n .addOnSuccessListener {\n Log.i(TAG,\"Successfully unsubscribed.\")\n }\n .addOnFailureListener { e-\u003e\n Log.w(TAG, \"Failed to unsubscribe.\")\n // Retry the unsubscribe request.\n }\n```\n\n### Java\n\n```java\nFitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))\n // This example shows unsubscribing from a DataType. A DataSource\n // should be used where the subscription was to a DataSource.\n // Alternatively, if the client doesn't maintain its subscription\n // information, they can use an element from the return value of\n // listSubscriptions(), which is of type Subscription.\n .unsubscribe(DataType.TYPE_STEP_COUNT_DELTA)\n .addOnSuccessListener(unused -\u003e\n Log.i(TAG,\"Successfully unsubscribed.\"))\n .addOnFailureListener(e -\u003e {\n Log.w(TAG, \"Failed to unsubscribe.\");\n // Retry the unsubscribe request.\n });\n}\n```"]]