פרטי המכשיר
ספקים יכולים להודיע למחפש מידע על המכשיר באמצעות מקור ההודעות.
שם קבוצת ההודעות | ערך |
---|---|
אירוע של פרטי המכשיר | 0x03 |
שם הקוד של פרטי המכשיר | ערך |
---|---|
מזהה דגם | 0x01 |
כתובת ה-BLE עודכנה | 0x02 |
הסוללה עודכנה | 0x03 |
משך הזמן שנותר לסוללה | 0x04 |
בקשה לרכיבים פעילים | 0x05 |
תגובה של רכיבים פעילים | 0x06 |
(הוצא משימוש)יכולות | 0x07 |
סוג הפלטפורמה | 0x08 |
גרסת הקושחה | 0x09 |
המזהה הזמני הנוכחי של FHN | 0x0B |
מזהה דגם
צריך לשלוח את פרטי מזהה המודל (לצורך כתיבה רטרואקטיבית של AccountKey) למכשיר המחפש כשהחיבור ל-RFCOMM מתבצע. לדוגמה, 0x03010003AABBCC
הוא:
- 0x03: אירוע של פרטי המכשיר
- 0x01: ערך של מזהה דגם
- 0x0003: נתונים נוספים, אורך 3
- 0xAABBCC: נתונים נוספים, מזהה מודל
כתובת BLE
אם אפשר, צריך לשלוח ל-Seeker גם את פרטי הכתובת של ה-BLE (לצורך כתיבה רטרואקטיבית של AccountKey) כשהחיבור ל-RFCOMM מתבצע, וגם בכל פעם שמתבצע רוטציה של הכתובת. לדוגמה, 0x03020006AABBCCDDEEFF
יהיה:
- 0x03: אירוע של פרטי המכשיר
- 0x02: ערך כתובת BLE
- 0x0006: נתונים נוספים, באורך 6
- 0xAABBCCDDEEFF: נתונים נוספים, כתובת BLE
הסוללה עודכנה
ספקים שתומכים בהתראות על מצב הסוללה יכולים לשלוח את נתוני הסוללה גם דרך RFCOMM. כשהחיבור של RFCOMM מתבצע או כשערך הסוללה משתנה, צריך לשלוח עדכון. כשמפרסמים נתוני סוללה ב-BLE, הקטע של הנתונים הנוספים בחבילה צריך להכיל נתונים זהים לאלה של הבייטים s + 2, s + 3, s + 4. לדוגמה,הערך של 0x0303000357417F
יהיה:
- 0x03: אירוע של פרטי המכשיר
- 0x03: ערך הסוללה
- 0x0003: נתונים נוספים, אורך 3
- 0x57417F: נתונים נוספים, ערכים של סוללה
- 0x57: ערך של האוזנייה השמאלית, לא בטעינה, 87% סוללה
- 0x41: ערך של האוזנייה הימנית, לא בטעינה, 65% סוללה
- 0x7F: ערך מארז, לא בטעינה, סוללה לא ידועה
ספקים יכולים גם לעדכן את משך הזמן שנותר לסוללה (אם ידוע). לדוגמה, הערך של 0x03040001F0
יהיה:
- 0x03: אירוע של פרטי המכשיר
- 0x04: זמן השימוש שנותר בסוללה
- 0x0001: נתונים נוספים, באורך 1 (יכול להיות 2 עבור uint16 אם יש צורך).
- 0xF0: נתונים נוספים, זמן הסוללה שנותר בדקות, 240 דקות
רכיבים פעילים
לפעמים מחפשים רוצים לדעת אילו רכיבים פעילים כרגע, כלומר שאפשר לבצע בהם פעולה (ראו פעולות במכשיר). כשהספק מקבל בקשה שמכילה את הקוד active components request (0x05), צריך להחזיר תשובה תוך שנייה אחת שמציינת את המצב הנוכחי של הספק. התגובה תשתמש בקוד active components response (0x06) ותכלול נתונים נוספים שמציינים אילו רכיבים זמינים.
לספק עם רכיב יחיד, צריך להגדיר את הנתונים הנוספים לערך 0x00 אם הם לא זמינים. לדוגמה, מצב חיסכון בסוללה שבו לא מתבצעת הפעלת מדיה. אחרת, צריך להגדיר את הנתונים הנוספים לערך 0x01.
באוזניות עם כמה רכיבים (לדוגמה, אוזנייה ימנית ואוזנייה שמאלית), כל ביט בנתונים הנוספים מייצג אם הרכיב הזה פעיל. דוגמה לרכיב לא פעיל יכולה להיות אוזנייה שנמצאת באריזתה ולא בשימוש. באופן ספציפי לגבי הנרתיק של האוזנייה השמאלית והאוזנייה הימנית:
- 0x00 (0b00000000): אף אחד מהאוזניות לא פעיל
- 0x01 (0b00000001): האוזנייה הימנית פעילה, האוזנייה השמאלית לא פעילה
- 0x02 (0b00000010): האוזניה השמאלית פעילה, האוזניה הימנית לא פעילה
- 0x03 (0b00000011): שני האוזניות פעילות
סוג פלטפורמה
ספקים עשויים לבצע פעולות שונות בהתאם לפלטפורמה שאליה הם מחוברים. בשלב זה, התכונה Fast Pair פועלת רק דרך Android, אבל יכול להיות שבעתיד נרחיב את התמיכה.
ההודעה תכלול בייט ראשון שמזהה את סוג הפלטפורמה בנתונים הנוספים:
שם הפלטפורמה | ערך |
---|---|
Android | 0x01 |
הבית השני יותאם אישית לכל פלטפורמה. ב-Android, הוא יתייחס לגרסת ה-SDK. לדוגמה, ל-Android Pie יהיה הערך 28 (0x1C).
גרסת הקושחה
גרסת הקושחה של הספק כמחרוזת בקידוד UTF-8. זהו אותו מידע שמופיע במאפיין של גרסה של קושחה.
המזהה הזמני הנוכחי של FHN
ספקים שמפרסמים מסגרות FHN צריכים לדווח על המזהה הזמני הנוכחי של FHN (EID) עם ערך השעון הנוכחי שלהם, כדי לסנכרן עם ה-Seeker במקרה של סטייה בשעון (לדוגמה, בגלל סוללה ריקה).
לדוגמה:
- 0x03: אירוע של פרטי המכשיר
- 0x0B: הודעה של מזהה זמני של FHN נוכחי
- 0x0018: נתונים נוספים, באורך 24 או 36 בייטים
- 0x13F9EA80: נתונים נוספים (ערך השעון, 4 בייטים)
- 0x1122334455667788990011223344556677889900: נתונים נוספים (EID הנוכחי, 20 או 32 בייטים)