המדריך הזה תואם לגרסה 1.1.0-alpha12 של Health Connect.
בוצעו שינויים במטא-נתונים ב-Health Connect למפתחים שבוחרים לשדרג לגרסה 1.1.0-alpha12.
פרטי הספרייה
מזהה הארטפיקט של פלאגין Google Maven Android gradle מציין את ספריית Health Connect שאליה תצטרכו לשדרג.
מוסיפים את התלות הזו ב-Health Connect SDK לקובץ build.gradle
ברמת המודול:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
שינויים במטא-נתונים
החל מגרסה 1.1.0-alpha12 של Health Connect Jetpack SDK, נוספו שני שינויים במטא-נתונים כדי לוודא שיש במערכת האקולוגית מטא-נתונים שימושיים נוספים.
חובה לציין פרטים של מטא-נתונים בכל פעם שמופעל אובייקט מסוג Record()
.
כשכותבים נתונים ב-Health Connect, צריך לציין אחת מ-4 שיטות תיעוד:
שיטת ההקלטה | תיאור |
---|---|
RECORDING_METHOD_UNKNOWN |
לא ניתן לאמת את שיטת ההקלטה. |
RECORDING_METHOD_MANUAL_ENTRY |
המשתמש הזין את הנתונים. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED |
המכשיר או החיישן תיעדו את הנתונים. |
RECORDING_METHOD_ACTIVELY_RECORDED |
המשתמש הפעיל את ההתחלה או הסיום של סשן ההקלטה במכשיר. |
לדוגמה:
StepsRecord(
startTime \= Instant.ofEpochMilli(1234L),
startZoneOffset \= null,
endTime \= Instant.ofEpochMilli(1236L),
endZoneOffset \= null,
metadata \= Metadata.manualEntry(),
Count \= 10,
)
חובה לציין סוג מכשיר לכל הנתונים שמתועדים באופן אוטומטי ופעיל. סוגי המכשירים הנוכחיים כוללים:
סוג המכשיר | תיאור |
---|---|
TYPE_UNKNOWN |
סוג המכשיר לא ידוע. |
TYPE_WATCH |
סוג המכשיר הוא שעון. |
TYPE_PHONE |
סוג המכשיר הוא טלפון. |
TYPE_SCALE |
סוג המכשיר הוא משקל. |
TYPE_RING |
סוג המכשיר הוא טבעת. |
TYPE_HEAD_MOUNTED |
סוג המכשיר הוא מכשיר שחובשים על הראש. |
TYPE_FITNESS_BAND |
סוג המכשיר הוא צמיד כושר. |
TYPE_CHEST_STRAP |
סוג המכשיר הוא רצועת חזה. |
TYPE_SMART_DISPLAY |
סוג המכשיר הוא מסך חכם. |
אם אפשר, כדאי לציין את היצרן והדגם של המכשיר בנוסף לסוג המכשיר. לדוגמה:
private val TEST_DEVICE = Device(
manufacturer = "Google",
model = "Pixel Watch",
type = Device.TYPE_WATCH
)
קטעי הטקסט עודכנו
עדכנו את המדריכים של Health Connect בכל מקום שבו נדרשו קטעי קוד חדשים כדי לעמוד בדרישות החדשות בנושא מטא-נתונים. דוגמאות אפשר למצוא בדף כתיבת נתונים.
שיטות חדשות של מטא-נתונים
אי אפשר יותר ליצור מטא-נתונים באופן ישיר, לכן צריך להשתמש באחת משיטות היצירה כדי לקבל מופע חדש של מטא-נתונים. לכל פונקציה יש שלוש וריאציות של חתימה:
activelyRecorded
fun activelyRecorded(device: Device): Metadata.
fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
fun activelyRecordedWithId(id: String, device: Device): Metadata
autoRecorded
fun autoRecorded(device: Device): Metadata
fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
fun autoRecordedWithId(id: String, device: Device): Metadata
manualEntry
fun manualEntry(device: Device? = null): Metadata
fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
fun manualEntryWithId(id: String, device: Device? = null): Metadata
unknownRecordingMethod
fun unknownRecordingMethod(device: Device? = null): Metadata
fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
מידע נוסף זמין בפרויקט הקוד הפתוח של Android.
נתוני בדיקה
משתמשים ב-Testing Library כדי ליצור מוקאפ של ערכי מטא-נתונים צפויים:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
הפעולה הזו מדמה את ההתנהגות של ההטמעה של Health Connect, שמאכלסת את הערכים האלה באופן אוטומטי במהלך הוספת הרשומה.
כדי להשתמש בספריית הבדיקות, צריך להוסיף את התלות הזו ב-Health Connect SDK לקובץ build.gradle
ברמת המודול:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
שדרוג הספרייה
השלבים העיקריים שצריך לבצע הם:
משדרגים את הספרייה לגרסה 1.1.0-alpha12.
כשיוצרים את הספרייה, המערכת תציג שגיאות קומפילציה במקומות שבהם נדרשים מטא-נתונים חדשים. לכן, חשוב להטמיע את השינויים הנדרשים במטא-נתונים בכל פעם שמופעל אובייקט מסוג
Record()
. ההעברה אמורה להסתיים.