داده های تناسب اندام را ثبت کنید

Recording API به برنامه شما این امکان را می‌دهد تا با ایجاد اشتراک، ذخیره خودکار داده‌های حسگر را به روشی کم‌توان از باتری درخواست کند. یک اشتراک با یک برنامه Android مرتبط است و شامل یک نوع داده تناسب اندام یا یک منبع داده خاص است.

می توانید چندین اشتراک برای انواع داده یا منابع داده مختلف در برنامه خود ایجاد کنید. Google Fit داده‌های تناسب اندام را از اشتراک‌های فعال ذخیره می‌کند، حتی زمانی که برنامه شما اجرا نمی‌شود، و با راه‌اندازی مجدد سیستم، این اشتراک‌ها را بازیابی می‌کند.

داده های ثبت شده در تاریخچه تناسب اندام کاربر موجود است. اگر همچنین می‌خواهید داده‌ها را در برنامه خود به‌صورت بلادرنگ نشان دهید، از Sensors API همراه با Recording API استفاده کنید. برای ثبت داده های تناسب اندام با فراداده جلسه، از Sessions API استفاده کنید.

در داده های تناسب اندام مشترک شوید

برای درخواست جمع‌آوری پس‌زمینه داده‌های حسگر در برنامه خود، از روش RecordingClient.subscribe استفاده کنید، همانطور که در قطعه کد زیر نشان داده شده است:

کاتلین

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

جاوا

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

اگر اشتراک با موفقیت اضافه شود، Google Fit داده‌های تناسب اندام از نوع TYPE_STEP_COUNT_DELTA را از طرف برنامه شما در سابقه تناسب اندام ذخیره می‌کند. این اشتراک در لیست اشتراک های فعال برنامه شما ظاهر می شود.

برای مشترک شدن در انواع بیشتری از داده های تناسب اندام در برنامه خود، مراحل مثال قبلی را دنبال کنید اما هر بار یک نوع داده تناسب اندام متفاوت ارائه دهید.

اشتراک های فعال را فهرست کنید

برای دریافت لیستی از اشتراک‌های فعال برنامه خود، از روش RecordingClient.listSubscriptions استفاده کنید، همانطور که در قطعه کد زیر نشان داده شده است:

کاتلین

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

جاوا

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

لغو اشتراک از داده های تناسب اندام

برای توقف جمع آوری داده های حسگر در برنامه خود، از روش RecordingClient.unsubscribe استفاده کنید، همانطور که در قطعه کد زیر نشان داده شده است:

کاتلین

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

جاوا

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