Registrare i dati sull'attività fisica

L'API Recording consente alla tua app di richiedere l'archiviazione automatica dei dati dei sensori in una risparmio energetico grazie alla creazione di abbonamenti. È associato un abbonamento con un'app per Android ed è costituito da un tipo di dati relativi all'attività fisica o da dati specifici sorgente.

Puoi creare più abbonamenti per origini dati o tipi di dati diversi. all'interno dell'app. Google Fit memorizza i dati relativi all'attività fisica degli abbonamenti attivi anche quando l'app non è in esecuzione, che ripristina quando di sistema.

I dati registrati sono disponibili nella cronologia di fitness dell'utente. Se vuoi anche per mostrare i dati nella tua app in tempo reale, utilizza L'API Sensors e l'API Recording. Per registrare dati sull'attività fisica con metadati di sessione, utilizza API Sessions.

Abbonarsi ai dati relativi all'attività fisica

Per richiedere la raccolta in background dei dati dei sensori nella tua app, usa l' RecordingClient.subscribe come mostrato nello snippet di codice riportato di seguito:

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

Se l'abbonamento viene aggiunto correttamente, Google Fit memorizza i dati di fitness del tipo TYPE_STEP_COUNT_DELTA nella cronologia di fitness per conto della tua app. Questo abbonamento viene visualizzato in l'elenco degli abbonamenti attivi per la tua app.

Per abbonarti ad altri tipi di dati relativi all'attività fisica nella tua app, segui i passaggi nella sezione precedente, ma forniscono ogni volta un tipo di dati relativi all'attività fisica diverso.

Elenca abbonamenti attivi

Per ottenere un elenco degli abbonamenti attivi per la tua app, usa la RecordingClient.listSubscriptions come mostrato nello snippet di codice riportato di seguito:

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

Annulla l'iscrizione ai dati relativi all'attività fisica

Per interrompere la raccolta dei dati dei sensori nella tua app, usa il RecordingClient.unsubscribe come mostrato nello snippet di codice riportato di seguito:

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