Registrar dados de condicionamento físico

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