התראות ב-Wear OS

ההתראות בשעונים משתמשות באותם ממשקי API ויש להן את אותו המבנה כמו ההתראות בטלפונים.

ההתראות יכולות להופיע בשעון בשתי דרכים:

  1. אפליקציה לנייד יוצרת התראה והמערכת מגשרת באופן אוטומטי את ההתראה הזו לשעון.
  2. אפליקציה למכשיר לביש יוצרת התראה.

בשני התרחישים, משתמשים במחלקה NotificationCompat.Builder כדי ליצור התראות. כשיוצרים התראות באמצעות מחלקת ה-Builder, המערכת דואגת להצגת ההתראות בצורה נכונה. לדוגמה, כששולחים התראה מהאפליקציה לנייד, כל התראה מופיעה ככרטיס בפיד ההתראות.

בדוגמה הבאה אפשר לראות איך ההתראות מוצגות. notification-cards

איור 1. אותה התראה מוצגת בטלפון ובשעון.

כדי לקבל את התוצאות הכי טובות, מומלץ להשתמש באחת ממחלקות המשנה של NotificationCompat.Style.

הערה: שימוש ב-RemoteViews מסיר מההתראות פריסות בהתאמה אישית, ובמכשיר הלביש מוצגים רק הטקסט והסמלים.

התראות מומלצות לגאדג'טים לבישים

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

אתם יכולים ליצור התראה שניתן להרחיב באותה דרך שבה יוצרים התראה כזו בנייד, באמצעות כל אחת ממחלקות המשנה NotificationCompat.Style הבאות. לדוגמה, התראה רגילה באמצעות NotificationCompat.MessagingStyle נראית כך: expandable-notification

איור 2. דוגמה לMessagingStyle התראה ב-Wear OS.

אפשר לראות שההתראה כוללת כמה פעולות שמוצגות זו מעל זו בחלק התחתון של ההתראה המורחבת.

כדאי לדעת: אם ההתראות כוללות פעולה של 'תשובה', כמו באפליקציית הודעות, אתם יכולים לשפר את ההתנהגות של ההתראה. לדוגמה, אתם יכולים להפעיל תשובות בהקלדה קולית ישירות מהמכשיר הלביש או תשובות מוגדרות מראש באמצעות setChoices(). מידע נוסף מופיע במאמר בנושא הוספת לחצן התגובה.

איך להימנע מהתראות כפולות

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

עם זאת, אם אתם יוצרים אפליקציית שעון עצמאית ואפליקציית טלפון משלימה, האפליקציות יוצרות התראות כפולות.

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

הוספת תכונות ספציפיות למכשירים לבישים להתראה

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

  1. יוצרים מופע של WearableExtender ומגדירים את האפשרויות הספציפיות למכשיר הלביש עבור ההתראה.
  2. יוצרים מופע של NotificationCompat.Builder ומגדירים את המאפיינים הרצויים להתראה, כפי שמתואר קודם במדריך הזה.
  3. מתקשרים אל extend() בהתראה ומעבירים את WearableExtender. הפעולה הזו תחיל את האפשרויות של המכשיר הלביש על ההתראה.
  4. מפעילים את build() כדי ליצור את ההתראה.

הערה: אם משתמשים ב-NotificationManager של המסגרת, חלק מהתכונות של NotificationCompat.WearableExtender לא פועלות, לכן חשוב להשתמש ב- NotificationCompat.

אתם יכולים לסנכרן את סגירת ההתראות או את ביטול ההתראות בין המכשירים של המשתמש. כדי לסנכרן את ביטול ההתראה, משתמשים בשיטה setDismissalId(). לכל התראה, מעבירים מזהה ייחודי גלובלי כמחרוזת כשמתקשרים אל setDismissalId(). כשמבטלים את ההתראה, כל ההתראות האחרות עם אותו מזהה ביטול מבוטלות בשעון ובטלפון המשויך. כדי לאחזר מזהה של דחייה, משתמשים בפקודה getDismissalId().

ציון פעולות שמתבצעות רק במכשיר הלביש

אם רוצים שאפשרויות הפעולה בשעון ובטלפון יהיו שונות, צריך להשתמש ב- WearableExtender.addAction(). אחרי שמוסיפים פעולה באמצעות השיטה הזו, המכשיר הלביש לא מציג פעולות אחרות שנוספו באמצעות NotificationCompat.Builder.addAction(). הפעולות שנוספו באמצעות WearableExtender.addAction() מופיעות רק במכשיר הלביש, ולא בטלפון.

הפעלת אפליקציית הטלפון ממכשיר לביש

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

  1. יוצרים Activity חדש שמרחיב את ConfirmationActivity.
  2. משתמשים ב-RemoteActivityHelper ב-Activity החדש כדי להפעיל את אפליקציית הטלפון.
  3. כשיוצרים את Intent כדי להפעיל את Activity מההתראה, מגדירים את התוסף EXTRA_ANIMATION_TYPE ל-OPEN_ON_PHONE_ANIMATION.
הגישה הזו מנחה את המשתמשים לאינטראקציה בטלפון שלהם ועומדת בדרישות הפלטפורמה להפעלת תהליכים ברקע.

הערה: אי אפשר להשתמש ב-BroadcastReceiver כיעד של פעולת ההתראה.