יצירת התראה על עדכון בזמן אמת

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

איור 1. דוגמה להתראה על עדכון בזמן אמת.

המאפיינים החזותיים של כרטיסי התראות מקודמים:

  • מוצג בתצוגה מורחבת כברירת מחדל
  • לא ניתן לכווץ

כדי שההודעה תיחשב לעדכון בזמן אמת, היא צריכה לעמוד בדרישות הבאות:

  • הסגנון חייב להיות רגיל, BigTextStyle, CallStyle או ProgressStyle.
  • צריך לבקש את ההרשאה הבאה שאינה הרשאת זמן ריצה במניפסט של Android:‏ android.permission.POST_PROMOTED_NOTIFICATIONS.
  • חובה לבקש מבצע באמצעות EXTRA_REQUEST_PROMOTED_ONGOING או NotificationCompat.Builder#setRequestPromotedOngoing.
  • הערך חייב להיות ongoing (הגדרה של FLAG_ONGOING_EVENT).
  • חובה להגדיר את contentTitle.
  • אסור להגדיר customContentView (לא RemoteViews).
  • אסור שיהיה סיכום של קבוצה באמצעות setGroupSummary.
  • אסור setColorized ל-TRUE.
  • ערוץ ההתראות לא יכול לכלול IMPORTANCE_MIN.

מאפייני מבצע

ממשקי ה-API הבאים עוזרים לכם לקבוע אם המערכת תקדם את ההתראה שלכם:

  • Notification.FLAG_PROMOTED_ONGOING מציין אם ההתראה מקודמת.
  • Notification.hasPromotableCharacteristics() בודק אם המערכת יכולה לקדם את ההתראה. בשיטה הזו לא נלקח בחשבון אם המשתמש השבית את העדכונים בזמן אמת של האפליקציה בהגדרות.
  • NotificationManager.canPostPromotedNotifications() בודק אם האפליקציה יכולה לפרסם התראה מקודמת, למשל אם המשתמש הפעיל או השבית אותה בהגדרות.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS היא פעולת הכוונה שמאפשרת לאפליקציות לשלוח משתמשים להגדרות כדי להפעיל את התכונה הזו.

קריטריונים לשימוש

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

מתמשך

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

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

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

בהפעלת המשתמש

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

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

מוצרים תלויי זמן

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

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

צ'יפים של סטטוס

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

סמל סטטוס בצורת צ'יפ
איור 2. במצב לא מוגדר מוצג הסמל הקטן, Notification.Builder#setSmallIcon.
צ'יפ סטטוס עם זמן
איור 3. כדי להציג את השעה המדויקת, משתמשים ב-Notification.Builder#setShortCriticalText.
צ'יפ סטטוס עם מידע
איור 4. משתמשים ב-Notification.Builder#setShortCriticalText כדי להעביר מידע קריטי.

כשהשעה היא

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

  • אם השעה שמוגדרת היא לפחות 2 דקות אחרי השעה הנוכחית: אם השעה הנוכחית היא 10:05 והשעה שמוגדרת היא 10:10, אז הצ'יפ יציג 5 דקות.
  • השעה שמוגדרת היא שעה שכבר חלפה: הטקסט לא מוצג.
  • כשמשתמשים בסטופר, אפשר להציג טיימר בצ'יפ. מידע נוסף זמין במאמרים בנושא setUsesChronometer וsetChronometerCountdown. הטיימר של הכרונומטר מוצג בצ'יפ כל עוד הוא חיובי.
  • אתם לא רוצים שהשעה תוצג בהתראה: משתמשים ב-setShowWhen כדי FALSE.

המראה של צ'יפ הסטטוס

צ'יפ הסטטוס תמיד כולל סמל, ויכול לכלול גם טקסט. הצ'יפ יכול להיות ברוחב של עד 96dp. הטקסט יוצג רק אם הוא כולו נכנס לצ'יפ. הטקסט מוצג בהתאם לקריטריונים הבאים:

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

סגירה

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

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

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

תמיכה בגורמי צורה שונים

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

בטבלה הבאה מפורטים סגנונות ההתראות הנתמכים לעדכונים בזמן אמת במגוון גורמי צורה:

WearOS משקפי AI
רגיל/ללא סגנון
CallStyle
‫✗ 1
BigText
‫✗ 2
ProgressStyle

חייגן.

שאלות נפוצות

שאלה: מהי הנקודה הלבנה בסוף סרגל ההתקדמות?

סוף ההתקדמות, אינדיקטור להמחשת הנגישות
איור 5. המחשה של נגישות בסוף התהליך

תשובה: הנקודה הלבנה בסוף סרגל ההתקדמות מסמנת באופן ויזואלי את סוף סרגל ההתקדמות.

שאלה: למה אין תמיכה בהתראות בהתאמה אישית לעדכונים בזמן אמת?

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


  1. השיחות לא מופיעות כהתראות ב-WearOS והאפליקציה  נפתחת ישירות

  2. ברירת המחדל של BigTextStyle היא התראות רגילות או ללא סגנון.