הקלטה של נתוני כושר

ממשק ה-API להקלטה מאפשר לאפליקציה לבקש אחסון אוטומטי של נתוני חיישנים בצורה חסכונית בסוללה באמצעות יצירת מינויים. יש מינוי משויך באפליקציה ל-Android וכולל נתונים מסוג 'כושר' או נתונים ספציפיים מקור.

אפשר ליצור כמה מינויים לסוגי נתונים שונים או למקורות נתונים שונים באפליקציה. Google Fit מאחסנת נתוני כושר ממינויים פעילים גם כשהאפליקציה לא פועלת, והיא משחזרת את המינויים האלה כאשר מופעלת מחדש.

הנתונים המתועדים זמינים בהיסטוריית הכושר של המשתמש. אם רוצים גם כדי להציג את הנתונים באפליקציה בזמן אמת, השתמשו Sensors API יחד עם Recording API. להקלטה נתוני כושר גופני עם מטא נתונים של סשנים, השתמשו Sessions API

הרשמה לנתוני כושר גופני

כדי לבקש איסוף של נתוני חיישנים ברקע באפליקציה, צריך להשתמש ב RecordingClient.subscribe , כפי שמוצג בקטע הקוד הבא:

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

אם המינוי נוסף בהצלחה, אפליקציית Google Fit שומרת את נתוני הכושר נתונים מסוג TYPE_STEP_COUNT_DELTA בהיסטוריית הכושר מטעם האפליקציה שלך. המינוי הזה מופיע רשימה של המינויים הפעילים לאפליקציה.

כדי להירשם לסוגים נוספים של נתוני כושר באפליקציה, צריך לפעול לפי השלבים הבאים את הדוגמה הקודמת, אבל לספק סוג שונה של נתוני כושר בכל פעם.

הצגת רשימת המינויים הפעילים

כדי לקבל רשימה של המינויים הפעילים לאפליקציה, צריך להשתמש ב RecordingClient.listSubscriptions , כפי שמוצג בקטע הקוד הבא:

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

ביטול ההרשמה לנתוני כושר

כדי להפסיק את האיסוף של נתוני החיישנים באפליקציה, משתמשים ב RecordingClient.unsubscribe , כפי שמוצג בקטע הקוד הבא:

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