סקירה כללית של Data Layer API

הצומת מבוסס-הענן נשלט על ידי שרת בבעלות Google
איור 1. דגימה של רשת צמתים עם החזקה ביד מכשירי Wear OS.

ה-Wearable Data Layer API, שהוא חלק מ-Google Play Services, מספק ערוץ תקשורת בין מכשירים לבישים (כמו שעונים חכמים) מכשירים ניידים מחוברים (בדרך כלל סמארטפונים). זוהי דרך לסנכרן להעביר נתונים בין המכשירים.

הערה: ה-API הזה זמין רק בשעונים עם Wear OS מכשירי Android מותאמים. עבור שעונים עם מערכת ההפעלה Wear OS שמותאמים לטלפונים עם iOS, האפליקציות יכולות שליחת שאילתות לממשקי API אחרים מבוססי-ענן אם קישוריות לאינטרנט זמינה. לקבלת מידע נוסף מידע על ממשקי ה-API האחרים האלה, גישה לרשת והסנכרון מופעלים Wear OS.

זהירות: מכיוון שממשקי ה-API של שכבת הנתונים מיועדים את התקשורת בין מכשירים ניידים לגאדג'טים לבישים, אלה ממשקי ה-API היחידים שאפשר להשתמש בהם שבהם משתמשים כדי להגדיר תקשורת בין המכשירים האלה. לדוגמה, אל תנסו לפתוח שקעים ברמה נמוכה כדי ליצור ערוץ תקשורת.

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

ה-Data Layer API שימושי במיוחד בתרחישים לדוגמה של כושר ומדיה.

אפליקציות כושר

בדרך כלל, כדי לשלוח נתוני אימוני כושר מאפליקציית Wear OS לאפליקציות כושר לנייד, לכתוב את נתוני הפעילות הגופנית שתועדו על ידי השעון באפליקציה לנייד או לבריאות Connect. אם אתם משתמשים ב-Data Layer API להעברת נתונים, השתמשו לקוח לשליחת הודעות כדי לשלוח נתוני פעילות גופנית מהאפליקציה Wear OS לאפליקציה לנייד כדי לכתוב ב-Health Connect.

איך משדרים נתונים בשידור חי לנייד במהלך אימון כושר ביתי

תרחיש שכיח של אימון כושר ביתי הוא העברת נתוני דופק מ-Wear OS. מכשיר נייד ומציג למשתמש מידע עדכני על דופק במסך הנייד שלהם. כדי להעביר את הנתונים האלה בסטרימינג, צריך להשתמש בלקוח ערוץ.

אפליקציות מדיה

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

אפשרויות לתקשורת

הנתונים מועברים באחת מהדרכים הבאות:

  1. ישירות, כשקיים חיבור Bluetooth בין מכשיר Wear OS ומכשיר אחר.
  2. ברשת זמינה, כמו LTE או Wi-Fi, באמצעות בשרת של Google כמתווכת.

כל לקוחות שכבת הנתונים עשויים להחליף נתונים באמצעות Bluetooth או באמצעות ענן, בהתאם לחיבורים הזמינים למכשירים. מניחים שהנתונים שמשודרות באמצעות שכבת הנתונים עשויה בשלב מסוים להשתמש בשרתים שבבעלות Google.

‫Bluetooth

כשמכשירים מחוברים באמצעות Bluetooth, שכבת הנתונים משתמשת בחיבור הזה. יש ערוץ מוצפן אחד בין המכשירים, באמצעות תקן הצפנת Bluetooth, מנוהלת על ידי Google Play Services.

ענן

הנתונים מנותבים באופן אוטומטי דרך Google Cloud כשאין חיבור Bluetooth זמין. כל הנתונים שמועברים דרך Google Cloud מוצפנים מקצה לקצה.

אבטחת התקשורת

תוכנת Google Play Services אוכפת את ההגבלות הבאות כדי לשפר את האבטחה תקשורת בין האפליקציה שמותקנת במכשיר Wear OS לבין אותה האפליקציה שמותקנים במכשיר נייד בקרבת מקום:

  • שם החבילה חייב להיות זהה בכל המכשירים.
  • החתימה של החבילה חייבת להיות זהה בכל המכשירים.

לאף אפליקציה אחרת אין גישה לנתונים, ללא קשר לסוג החיבור.

הגדרה

ל-Wearable Data Layer API יש את יחסי התלות הבאים:

  • את הגרסה האחרונה של Google Play Services.
  • מכשיר Wear OS או אמולטור Wear OS.

כוללים את יחסי התלות הבאים בקובץ build.gradle במודול Wear:

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:18.2.0")
}

עזרו בתהליך ההתאמה הראשוני

הורולוג מספק מספר ספריות עוזרות בנוסף לממשקי ה-API של הפלטפורמה. היא כוללת ספריית שכבות נתונים שעוזרת ליצור חיבור בין מכשיר נייד ומכשיר Wear OS. בנוסף, הוא מספק ממשקי API נוחים לבצע את הפעולות הבאות:

  • מתקינים את האפליקציה במכשיר השני.
  • מפעילים את האפליקציה במכשיר השני.
  • התחלת פעילות ספציפית במכשיר האחר.
  • מפעילים את האפליקציה הנלווית.

גישה לשכבת הנתונים

כדי לשלוח קריאה ל-Data Layer API, משתמשים במחלקה Wearable כדי לקבל מופעים של את סיווגי הלקוח השונים, כמו DataClient ו-MessageClient.

מידע נוסף זמין בדוגמת DataLayer.

שימוש בלקוח מינימלי

כדי ליצור לקוח, אפשר לעיין בקוד הבא לדוגמה:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

ההקשר יכול להיות כל הקשר תקין של Android. אם אתם משתמשים ב-API בתוך ההיקף של Activity, צריך להשתמש בשיטה getDataClient() של Wearable בכיתה. כך אינטראקציות מסוימות יכולות להופיע כתיבות דו-שיח במקום התראות, למשל כשהמשתמש מתבקש לעדכן את גרסת Google Play Services.

כברירת מחדל, קריאות חוזרות למאזינים מתבצעות בשרשור הראשי של ממשק המשתמש של האפליקציה. כדי קריאות חוזרות (callback) שבוצעו בשרשור אחר, צריך להשתמש באובייקט WearableOptions כדי לציין Looper מותאם אישית:

Kotlin

runBlocking {
    Wearable.getDataClient(context, options)
}

Java

WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

אפשר לקרוא מידע נוסף בחומר העזר בנושא WearableOptions.Builder.

יצירה מחדש של מופעי הלקוח לפי הצורך

לקוחות API לבישים, כמו DataClient ו-MessageClient, הם שלא יקר ליצירה. לכן במקום להיצמד ללקוחות, צריך ליצור אותם מחדש בהתאם לצרכים של האפליקציה.

מצב הלקוח, למשל קבוצת המאזינים הרשומים, משותף בין כל המאזינים הלקוח, והוא נשמר אם מתבצע עדכון של Google Play Services בזמן שאפליקציה ריצה.