A API Recording permite que seu app solicite o armazenamento automatizado dos dados do sensor em um de maneira eficiente da bateria ao criar assinaturas. Uma assinatura está associada com um app Android e consiste em um tipo de dado de condicionamento físico ou um dado específico fonte.
É possível criar várias assinaturas para diferentes tipos ou fontes de dados. no seu app. O Google Fit armazena dados de condicionamento físico de assinaturas ativas, mesmo quando seu app não está em execução e restaura essas assinaturas quando o o sistema é reiniciado.
Os dados registrados ficam disponíveis no histórico de condicionamento físico do usuário. Se você também quiser para mostrar os dados no seu app em tempo real, use o a API Sensors e a API Recording. Para gravar dados de condicionamento físico com metadados de sessão, use o API Sessions.
Inscrever-se nos dados de condicionamento físico
Para solicitar a coleta de dados do sensor em segundo plano no app, use o
RecordingClient.subscribe
, conforme mostrado no snippet de código a seguir:
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 a assinatura for adicionada, o Google Fit armazenará as informações de condicionamento físico
dados do tipo
TYPE_STEP_COUNT_DELTA
no histórico de condicionamento físico em nome do seu app. Essa assinatura aparece na
lista de assinaturas ativas do seu app.
Para se inscrever para receber mais tipos de dados de condicionamento físico no seu app, siga as etapas na exemplo anterior, mas fornecem um tipo de dado de condicionamento físico diferente a cada vez.
Listar assinaturas ativas
Para ver uma lista das assinaturas ativas do seu app, use o
RecordingClient.listSubscriptions
, conforme mostrado no snippet de código a seguir:
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}"); } }); }
Cancelar inscrição nos dados de condicionamento físico
Para interromper a coleta de dados do sensor no app, use o
RecordingClient.unsubscribe
, conforme mostrado no snippet de código a seguir:
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. }); }