Enregistrer les données de remise en forme

L'API Recording permet à votre application de demander le stockage automatisé des données de capteurs de manière économe en batterie en créant des abonnements. Un abonnement est associé à une application Android et comprend un type de données de remise en forme ou une source de données spécifique.

Vous pouvez créer plusieurs abonnements pour différents types de données ou sources de données dans votre application. Google Fit stocke les données de remise en forme issues des abonnements actifs, même lorsque votre application n'est pas en cours d'exécution. Il restaure ces abonnements au redémarrage du système.

Les données enregistrées sont disponibles dans l'historique de remise en forme de l'utilisateur. Si vous souhaitez également afficher les données de votre application en temps réel, utilisez l'API Sensors avec l'API Recording. Pour enregistrer des données d'adéquation avec les métadonnées de session, utilisez l'API Sessions.

S'abonner aux données de remise en forme

Pour demander la collecte en arrière-plan des données de capteurs dans votre application, utilisez la méthode RecordingClient.subscribe, comme indiqué dans l'extrait de code suivant:

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 l'abonnement a bien été ajouté, Google Fit stocke les données de remise en forme de type TYPE_STEP_COUNT_DELTA dans l'historique de remise en forme pour le compte de votre application. Cet abonnement apparaît dans la liste des abonnements actifs de votre application.

Pour vous abonner à d'autres types de données de remise en forme dans votre application, suivez les étapes de l'exemple précédent, mais fournissez un type de données de remise en forme différent à chaque fois.

Répertorier les abonnements actifs

Pour obtenir la liste des abonnements actifs pour votre application, utilisez la méthode RecordingClient.listSubscriptions, comme indiqué dans l'extrait de code suivant:

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

Se désabonner des données d'activité physique

Pour arrêter la collecte des données de capteurs dans votre application, utilisez la méthode RecordingClient.unsubscribe, comme indiqué dans l'extrait de code suivant:

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