התראות ב-Wear OS

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

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

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

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

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

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

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

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

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

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

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

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

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

דוגמאות לשימוש ב-NotificationCompat.BigPictureStyle,‏ NotificationCompat.BigTextStyle,‏ NotificationCompat.InboxStyle ו-NotificationCompat.MessagingStyle זמינות בדוגמה של הודעה ב-GitHub.

כדאי לדעת: אם ההתראות כוללות פעולה של 'תשובה', כמו באפליקציית הודעות, אפשר לשפר את ההתנהגות של ההתראה. לדוגמה, אתם יכולים להפעיל תשובות בהכתבה ישירות מהמכשיר הלביש או תשובות טקסט מוגדרות מראש באמצעות 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 כיעד של פעולת ההתראה.