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

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

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

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

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

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

ממשק ה-API של שכבת הנתונים שימושי במיוחד בתרחישי שימוש בתחום הכושר והמדיה.

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

שליחת נתוני אימון מאפליקציית Wear OS לאפליקציה לנייד. לרוב, אפליקציות כושר צריכות לכתוב את נתוני האימון שצולמו בשעון לאפליקציה לנייד או ל-Health 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 מוצפנים מקצה לקצה.

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

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

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

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

הגדרה

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

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

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

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

יצירת תנאים נוחים לתהליך ההתאמה הראשוני

Horologist מספק כמה ספריות עזר בנוסף לממשקי ה-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.

כברירת מחדל, קריאות חזרה למאזינים מתבצעות בשרשור הראשי של ממשק המשתמש של האפליקציה. כדי שהקריאות החוזרות יבוצעו בשרשור אחר, צריך להשתמש באובייקט 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 מתעדכן בזמן שהאפליקציה פועלת.