Fitness verilerini kaydetme

Kayıt API'si, uygulamanızın sensör verilerinin otomatik olarak pil tasarrufu sağlayabilirsiniz. Bir abonelik ilişkilendirilmiş içeren ve fitness veri türünden ya da belirli bir veriden oluşan kaynak.

Farklı veri türleri veya veri kaynakları için birden fazla abonelik oluşturabilirsiniz. dokunun. Google Fit, aktif aboneliklerden fitness verilerini depolar. ve uygulamanız çalışmıyorken bile bu abonelikleri geri yükler. yeniden başlatmasını sağlayın.

Kaydedilen veriler kullanıcının fitness geçmişinde kullanılabilir. Ayrıca şunları da istiyorsanız: gerçek zamanlı olarak göstermek için Kayıt API'si ile birlikte Sensors API. Kaydetmek için fitness verilerini oturum meta verileriyle değiştirmek için Oturumlar API'si

Fitness verilerine abone ol

Uygulamanızda sensör verilerinin arka planda toplanmasını istemek için şunu kullanın: RecordingClient.subscribe yöntemini çağırın:

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

Abonelik başarıyla eklenirse Google Fit, form koruma bilgilerini depolar. veri türü TYPE_STEP_COUNT_DELTA inceleyebilirsiniz. Bu abonelik etkin aboneliklerin listesidir.

Uygulamanızda daha fazla fitness verisi türüne abone olmak için şuradaki adımları uygulayın: ancak her seferinde farklı bir fitness veri türü sağlayın.

Etkin abonelikleri listele

Uygulamanıza ilişkin etkin aboneliklerin listesini almak için RecordingClient.listSubscriptions yöntemini çağırın:

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

Fitness verileri aboneliğinden çık

Uygulamanızda sensör verilerinin toplanmasını durdurmak için şunu kullanın: RecordingClient.unsubscribe yöntemini çağırın:

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