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