Registra datos de entrenamiento

La API de Grabación permite a tu app solicitar el almacenamiento automatizado de datos de sensores en un de manera eficiente de la batería mediante la creación de suscripciones. Se asocia una suscripción Se relaciona con una app para Android y consta de un tipo de datos de entrenamiento o datos específicos. fuente.

Puedes crear varias suscripciones para diferentes tipos o fuentes de datos en tu app. Google Fit almacena datos de entrenamiento de las suscripciones activas, incluso cuando tu app no se está ejecutando, y restablece esas suscripciones cuando la se reinicie el sistema.

Los datos registrados están disponibles en el historial de entrenamiento del usuario. Si también quieres Para mostrar los datos de tu app en tiempo real, usa la API de Sensors junto con la API de Grabación. Para grabar de actividad física con metadatos de sesión, usa el API de Sessions.

Suscribirse a los datos de actividad física

Para solicitar la recopilación en segundo plano de datos de sensores de tu app, usa la RecordingClient.subscribe como se muestra en el siguiente fragmento de código:

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));

Si la suscripción se agregó correctamente, Google Fit almacenará los datos de entrenamiento datos de tipo TYPE_STEP_COUNT_DELTA en el historial de entrenamiento en nombre de tu app. Esta suscripción aparece una lista de suscripciones activas en tu app.

Para suscribirte a más tipos de datos de actividad física en tu aplicación, sigue los pasos en la ejemplo anterior, pero proporcionar un tipo de datos de actividad física diferente cada vez.

Mostrar lista de suscripciones activas

Para obtener una lista de las suscripciones activas para tu app, usa la RecordingClient.listSubscriptions como se muestra en el siguiente fragmento de código:

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}");
            }
    });
}

Anular la suscripción a los datos de actividad física

Para detener la recopilación de datos de sensores en tu app, usa la RecordingClient.unsubscribe como se muestra en el siguiente fragmento de código:

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.
        });
}