Enregistrer des données de fitness

L'API Recording permet à votre application de demander le stockage automatisé des données de capteurs dans un économe en batterie en créant des abonnements. Un abonnement est associé avec une application Android, et il s'agit d'un type de données de fitness ou de données source.

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

Les données enregistrées sont disponibles dans l'historique de remise en forme de l'utilisateur. Si vous souhaitez également pour afficher les données dans votre application en temps réel, utilisez le L'API Sensors et l'API Recording. Pour enregistrer données de fitness avec les métadonnées de session, utilisez la API Sessions :

S'abonner aux données de remise en forme

Pour demander la collecte en arrière-plan des données des capteurs dans votre application, utilisez le 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 est bien ajouté, Google Fit stocke les données de fitness données de type TYPE_STEP_COUNT_DELTA dans l'historique de remise en forme au nom de votre application. Cet abonnement figure dans le liste des abonnements actifs pour votre application.

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

Lister les abonnements actifs

Pour obtenir la liste des abonnements actifs pour votre application, utilisez le 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 de remise en forme

Pour arrêter la collecte des données des capteurs dans votre application, utilisez le 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.
        });
}