ממשק ה-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. }); }