התראה היא הודעה שמערכת Android מציגה מחוץ לממשק המשתמש של האפליקציה כדי לספק למשתמש תזכורות, הודעות מאנשים אחרים או מידע עדכני אחר מהאפליקציה. המשתמשים יכולים להקיש על ההתראה כדי לפתוח את האפליקציה או לבצע פעולה ישירות מההתראה.
בדף הזה מופיעה סקירה כללית של המקומות שבהם ההתראות מופיעות והתכונות הזמינות. כדי להתחיל ליצור התראות, כדאי לעיין במאמר יצירת התראה.
למידע נוסף על עיצוב התראות ועל דפוסי אינטראקציה, עיינו במדריך לעיצוב התראות.
הופעות במכשיר
ההתראות מופיעות למשתמשים באופן אוטומטי במיקומים ובפורמטים שונים. ההתראה מופיעה כסמל בשורת הסטטוס, כרשומה מפורטת יותר בחלונית ההזזה של ההתראות וכתג על סמל האפליקציה. ההתראות מופיעות גם בגאדג'טים לבישים מותאמים.
שורת הסטטוס ותיקיית ההתראות
כששולחים התראה, היא מופיעה קודם בתור סמל בשורת הסטטוס.
המשתמשים יכולים להחליק למטה בסרגל הסטטוס כדי לפתוח את חלונית ההתראות, שבה הם יכולים לראות פרטים נוספים ולבצע פעולות שקשורות להתראה.
המשתמשים יכולים לגרור למטה התראה בחלונית כדי להציג את התצוגה המורחבת, שבה מוצגים תוכן נוסף ולחצני פעולה, אם יש כאלה. החל מ-Android 13, התצוגה המורחבת הזו כוללת לחצן שמאפשר למשתמשים להפסיק אפליקציה עם שירותים פעילים בחזית.
ההתראה תישאר גלויה במגירה של ההתראות עד שהאפליקציה או המשתמש יסגרו אותה.
התראת 'שימו לב'
החל מגרסה 5.0 של Android, התראות יכולות להופיע בחלון צף שנקרא התראה מראש. בדרך כלל, התנהגוּת כזו מתרחשת לגבי התראות חשובות שהמשתמש צריך לדעת עליהן באופן מיידי, והיא מופיעה רק אם המכשיר לא נעול.
ההתראה 'שימו לב' מופיעה כשהאפליקציה שולחת אותה. היא תיעלם אחרי רגע, אבל תישאר גלויה במגירה של ההתראות כרגיל.
התנאים שעשויים להפעיל התראות מראש כוללים:
הפעילות של המשתמש מתבצעת במצב מסך מלא, למשל כשהאפליקציה משתמשת ב-
fullScreenIntent
.ההתראה היא בעדיפות גבוהה ומופיעה עם צלצול או רטט במכשירים עם Android מגרסה 7.1 (רמת API 25) ומטה.
ערוץ ההתראות חשוב מאוד במכשירים עם Android מגרסה 8.0 (רמת API 26) ואילך.
מסך הנעילה
החל מגרסה 5.0 של Android, ההתראות יכולות להופיע במסך הנעילה.
אתם יכולים להגדיר באופן פרוגרמטי אם ההתראות שפורסמו על ידי האפליקציה שלכם יוצגו במסך נעילה מאובטח, ואם כן, את רמת הפירוט שגלויה.
המשתמשים יכולים להשתמש בהגדרות המערכת כדי לבחור את רמת הפירוט שמוצגת בהתראות במסך הנעילה, או להשבית את כל ההתראות במסך הנעילה. החל מגרסה Android 8.0, משתמשים יכולים להשבית או להפעיל התראות במסך הנעילה לכל ערוץ התראות.
מידע נוסף זמין במאמר הגדרת החשיפה של מסך הנעילה.
תג עם סמל האפליקציה
במרכזי אפליקציות נתמכים במכשירים עם Android מגרסה 8.0 (רמת API 26) ואילך, תג צבעוני שנקרא נקודת התראה מופיע על סמל מרכז האפליקציות התואם כדי לציין התראות חדשות.
המשתמשים יכולים ללחוץ לחיצה ארוכה על סמל האפליקציה כדי לראות את ההתראות שלה. הם יכולים לסגור את ההתראות או לבצע פעולות לגביהן מהתפריט הזה, בדומה למגירה של ההתראות.
מידע נוסף על התגים זמין במאמר שינוי תג התראה.
מכשירי Wear OS
אם למשתמש יש מכשיר Wear OS מותאם, כל ההתראות יופיעו שם באופן אוטומטי, כולל פרטים שניתן להרחיב ולחצני פעולה.
אתם יכולים לשפר את חוויית השימוש על ידי התאמה אישית של המראה של ההתראות במכשירים לבישים, וביצוע פעולות שונות, כולל הצעות לתשובות ותשובות מהקלדה קולית. מידע נוסף זמין במאמר הוספת תכונות ספציפיות למכשיר לביש להתראות.
האנטומיה של ההתראות
העיצוב של ההתראה נקבע על ידי תבניות מערכת, והאפליקציה מגדירה את התוכן של כל חלק בתבנית. חלק מהפרטים של ההתראה מופיעים רק בתצוגה המורחבת.
החלקים הנפוצים ביותר בהתראה מוצגים באיור 7, באופן הבא:
- סמל קטן: חובה. מגדירים באמצעות
setSmallIcon()
. - שם האפליקציה: מסופק על ידי המערכת.
- חותמת זמן: המערכת מספקת אותה, אבל אפשר לשנות אותה באמצעות
setWhen()
או להסתיר אותה באמצעותsetShowWhen(false)
. - סמל גדול: אופציונלי. בדרך כלל משתמשים בו רק בתמונות של אנשי קשר.
אין להשתמש בו כסמל של האפליקציה. מגדירים באמצעות
setLargeIcon()
. - כותרת: אופציונלי, מוגדר באמצעות
setContentTitle()
. - טקסט: אופציונלי, מוגדר באמצעות
setContentText()
.
מומלץ מאוד להשתמש בתבניות מערכת כדי להבטיח תאימות של העיצוב לכל המכשירים. אם צריך, אפשר ליצור פריסה מותאמת אישית של התראות.
מידע נוסף על יצירת התראות עם התכונות האלה ועוד זמין במאמר יצירת התראה.
פעולות בעת התראה
אמנם זה לא חובה, אבל מומלץ שכל התראה תפתח פעילות מתאימה באפליקציה כשתלחצו עליה. בנוסף לפעולה שמוגדרת כברירת מחדל בהתראה, אפשר להוסיף לחצני פעולה שמאפשרים לבצע משימה שקשורה לאפליקציה מההתראה – לרוב בלי לפתוח פעילות – כפי שמוצג באיור 8.
החל מגרסה 7.0 של Android (רמת API 24), אפשר להוסיף פעולה כדי להשיב להודעות או להזין טקסט אחר ישירות מהתראה.
החל מגרסה 10 של Android (רמת API 29), הפלטפורמה יכולה ליצור באופן אוטומטי לחצני פעולה עם הצעות לפעולות שמבוססות על כוונה.
הסבר נוסף על הוספת לחצני פעולה זמין במאמר יצירת התראה.
דרישה למכשיר לא נעול
יכול להיות שהמשתמשים יראו פעולות של התראות במסך הנעילה של המכשיר. אם פעולת התראה גורמת לאפליקציה להפעיל פעילות או לשלוח תשובה ישירה, המשתמשים צריכים לבטל את נעילת המכשיר כדי שהאפליקציה תוכל להפעיל את פעולת ההתראה הזו.
ב-Android 12 ואילך (רמת API 31 ואילך), אפשר להגדיר פעולת התראה כך שהמכשיר יצטרך להיות פתוח כדי שהאפליקציה תפעיל את הפעולה הזו, ללא קשר לתהליך העבודה שהפעולה מפעילה. האפשרות הזו מוסיפה שכבת אבטחה נוספת להתראות במכשירים נעולים.
כדי לדרוש שהמכשיר יהיה פתוח לפני שהאפליקציה תפעיל פעולת התראה מסוימת, מעבירים את הערך true
אל setAuthenticationRequired()
כשיוצרים את פעולת ההתראה, כפי שמתואר בקטע הקוד הבא:
Kotlin
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Java
Notification moreSecureNotification = new Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build();
הודעה שניתן להרחיב
כברירת מחדל, תוכן הטקסט של ההתראה נחתך כך שיתאימו לשורה אחת. אם רוצים שההתראה תהיה ארוכה יותר, אפשר להפעיל אזור טקסט גדול יותר שניתן להרחיב על ידי החלת תבנית נוספת, כפי שמוצג באיור 9.
אפשר גם ליצור התראה נפתחת עם תמונה, בסגנון של תיבת דואר נכנס, עם שיחת צ'אט או עם לחצני בקרה להפעלת מדיה. מידע נוסף זמין במאמר יצירת התראה שניתן להרחיב.
עדכונים וקבוצות של התראות
כדי לא להציף את המשתמשים בהתראות מרובות או מיותרות כשיש לכם עדכונים נוספים, עדכנו התראה קיימת במקום ליצור התראה חדשה, או השתמשו בהתראה בסגנון תיבת דואר נכנס כדי להציג עדכונים של שיחות.
עם זאת, אם צריך לשלוח כמה התראות, מומלץ לקבץ את ההתראות הנפרדות לקבוצה. התכונה הזו זמינה ב-Android מגרסה 7.0 ואילך.
קבוצת התראות מאפשרת לכווץ כמה התראות לפוסט אחד בחלונית ההתראות, עם סיכום. המשתמש יכול להרחיב בהדרגה את קבוצת ההתראות ואת כל התראה בתוכה כדי לקבל פרטים נוספים, כפי שמוצג באיור 10.
במאמר יצירת קבוצה של התראות מוסבר איך מוסיפים התראות לקבוצה.
ערוצי התראות
החל מגרסה 8.0 של Android (רמת API 26), צריך להקצות את כל ההתראות לערוץ, אחרת הן לא יופיעו. כך המשתמשים יכולים להשבית ערוצי התראות ספציפיים באפליקציה במקום להשבית את כל ההתראות. המשתמשים יכולים לשלוט באפשרויות החזוניות והקוליות של כל ערוץ דרך הגדרות המערכת של Android, כפי שמוצג באיור 11. המשתמשים יכולים גם להקיש לחיצה ארוכה על התראה כדי לשנות את ההתנהגויות של הערוץ המשויך.
במכשירים עם Android מגרסה 7.1 (רמת API 25) ומטה, המשתמשים יכולים לנהל את ההתראות רק לפי אפליקציה. בפועל, לכל אפליקציה יש רק ערוץ אחד ב-Android מגרסה 7.1 ומטה.
לאפליקציה יכולים להיות ערוצים נפרדים לכל סוג של התראה שהיא שולחת. אפליקציה יכולה גם ליצור ערוצי התראות בתגובה לבחירות של המשתמשים. לדוגמה, אפשר להגדיר ערוצי התראות נפרדים לכל קבוצת שיחות שנוצרה על ידי משתמש באפליקציית הודעות.
בערוץ הזה גם מציינים את רמת החשיבות של ההתראות ב-Android מגרסה 8.0 ואילך, כך שכל ההתראות שפורסמו באותו ערוץ התראות יתנהגו באותו אופן. הנושא הזה מתואר בקטע הבא.
מידע נוסף זמין במאמר יצירה וניהול של ערוצי התראות.
רמת החשיבות של ההתראות
מערכת Android משתמשת בחשיבות של ההתראה כדי לקבוע באיזו מידה ההתראה מפריעה למשתמש מבחינה חזותית או שמיעה. ככל שהחשיבות של ההתראה גבוהה יותר, כך היא מפריעה יותר.
ב-Android 7.1 (רמת API 25) ובגרסאות ישנות יותר, חשיבות ההתראה נקבעת לפי הערך של priority
שלה.
ב-Android מגרסה 8.0 (רמת API 26) ואילך, מידת החשיבות של התראה נקבעת לפי importance
של הערוץ שאליו היא פורסמה. משתמשים יכולים לשנות את רמת החשיבות של ערוץ התראות בהגדרות המערכת, כפי שמוצג באיור 12.
רמות החשיבות האפשריות וההתנהגויות המשויכות של ההתראות הן:
דחוף: נשמע צליל וההתראה מופיעה כהודעה מראש.
גבוה: נשמע צליל.
בינונית: לא נשמע צליל.
נמוכה: לא נשמע צליל והיא לא מופיעה בשורת הסטטוס.
כל ההתראות, ללא קשר לחשיבות שלהן, מופיעות במיקומים בממשק המשתמש של המערכת שלא מפריעים לשימוש, למשל בחלונית ההזזה של ההתראות וכתג על סמל מרכז האפליקציות. עם זאת, אפשר לשנות את המראה של תג ההתראה.
מידע נוסף זמין במאמר איך מגדירים את מידת החשיבות.
מצב 'נא לא להפריע'
החל מגרסה 5.0 של Android (רמת API 21), המשתמשים יכולים להפעיל את מצב 'נא לא להפריע', שמשתיק את הצליל והרטט של כל ההתראות. ההתראות עדיין יופיעו בממשק המשתמש של המערכת כרגיל, אלא אם המשתמש יציין אחרת.
יש שלוש רמות במצב 'נא לא להפריע':
- השתקה מוחלטת: ביטול כל הצלילים והרטט, כולל צלילים ורטט שמקורם בהתראות, מוזיקה, סרטונים ומשחקים.
- אזעקות בלבד: חסימת כל הצלילים והרטט, מלבד אזעקות.
- רק הודעות בעדיפות גבוהה: המשתמשים יכולים לקבוע אילו קטגוריות ברמת המערכת יכולות להפריע להם, למשל רק התראות, תזכורות, אירועים, שיחות או הודעות. לגבי הודעות ושיחות, המשתמשים יכולים לסנן לפי השולח או מבצע השיחה, כפי שמוצג באיור 13.
בגרסאות Android 8.0 ואילך (רמת API 26 ואילך), המשתמשים יכולים גם לאפשר התראות עבור קטגוריות ספציפיות לאפליקציות – שנקראות גם 'ערוצים' – על ידי שינוי ההגדרה של 'נא לא להפריע' בכל ערוץ בנפרד. לדוגמה, באפליקציית תשלומים יכולים להיות ערוצים להתרעות שקשורות למשיכות ולהפקדות. במצב עדיפות, המשתמש יכול לאפשר התראות על משיכות, התראות על הפקדות או את שתיהן.
במכשירים עם מערכת Android בגרסה 7.1 ואילך (רמת API 25 ומטה), המשתמשים יכולים לאפשר התראות על בסיס אפליקציה, ולא על בסיס ערוץ.
כדי להגדיר את ההתראות בהתאם להגדרות המשתמש האלה, צריך להגדיר קטגוריה ברמת המערכת.
התראות לשירותים שפועלים בחזית
צריך לשלוח התראה כשהאפליקציה מפעילה שירות בחזית – Service
שפועל ברקע, לטווח ארוך וגלוי למשתמש, כמו נגן מדיה. לא ניתן לסגור את ההתראה הזו כמו התראות אחרות. כדי להסיר את ההתראה, צריך להפסיק את השירות או להסיר אותו ממצב חזית.
מידע נוסף זמין במאמר שירותים בחזית. אם אתם מפתחים נגן מדיה, כדאי לקרוא גם את המאמר הפעלת מדיה ברקע.
מגבלות על פרסום פוסטים
החל מגרסה Android 8.1 (API ברמה 27), אפליקציות לא יכולות להשמיע צליל התראה יותר מפעם בשנייה. אם האפליקציה שלכם שולחת כמה התראות בשנייה אחת, כולן יופיעו כצפוי, אבל רק ההתראה הראשונה בשנייה תשמיע צליל.
עם זאת, ב-Android חלה גם הגבלת קצב כשמעדכנים התראה. אם מפרסמים עדכונים להתראה אחת בתדירות גבוהה מדי, למשל הרבה עדכונים בפחות משנייה, יכול להיות שהמערכת תפסיק לפרסם עדכונים.
תאימות התראות
ממשק המשתמש של מערכת ההתראות של Android וממשקי ה-API שקשורים להתראות מתפתחים כל הזמן. כדי להשתמש בתכונות העדכניות ביותר של Notification API תוך תמיכה במכשירים ישנים יותר, צריך להשתמש ב-Notification API של Support Library, NotificationCompat
, בתת-הסוגים שלו וב-NotificationManagerCompat
.
כך אפשר להימנע מכתיבת קוד מותנה לבדיקה של רמות ה-API, כי ממשקי ה-API האלה מטפלים בכך.
NotificationCompat
מתעדכן ככל שהפלטפורמה מתפתחת, כך שיכלול את השיטות העדכניות ביותר. עם זאת, הזמינות של שיטה ב-NotificationCompat
לא מבטיחה שהתכונה המתאימה זמינה במכשירים ישנים יותר. במקרים מסוימים, קריאה ל-API חדשה גורמת לפעולה ללא תוצאה (no-op) במכשירים ישנים יותר.
בהמשך מופיע סיכום של השינויים המשמעותיים ביותר בהתנהגות של התראות ב-Android לפי רמת ה-API.
Android 5.0, רמת API 21
נוספו מסך נעילה והתראות מראש.
מאפשרת למשתמש להגדיר את הטלפון למצב 'נא לא להפריע' ולהגדיר אילו התראות מורשות להפריע לו כשהמכשיר במצב 'רק התראות בעדיפות'.
נוספו שיטות להגדרה אם התראה תוצג במסך הנעילה, כמו
setVisibility()
, ולהגדרת גרסה 'גלויה לכולם' של טקסט ההתראה.הוספת השיטה
setPriority()
, שמציינת למערכת את מידת ההפרעה של ההתראה. לדוגמה, הגדרת העדיפות כ'גבוהה' גורמת להצגת ההתראה כ'שימו לב'.נוספה תמיכה בערימות התראות במכשירי Android Wear (שנקראים עכשיו Wear OS). אפשר להוסיף התראות למקבץ באמצעות
setGroup()
. סטאקים של התראות, שנקראים מאוחר יותר 'קבוצה' או 'חבילה', לא נתמכים בטאבלטים או בטלפונים עד Android 7.0 (רמת API 24).
Android 7.0, רמת API 24
עיצוב מחדש של תבניות ההתראות כדי להדגיש את התמונה הראשית ואת הדמות שלכם.
הוספה של שלושה תבניות התראות: אחת לאפליקציות שליחת הודעות, והשתיים האחרות לקישוט תצוגות של תוכן בהתאמה אישית באמצעות האפשרות להרחבה וקישוט מערכת אחר.
הוספת תמיכה בקבוצות התראות במכשירים ניידים, כמו טלפונים וטאבלטים. משתמש באותו ממשק API כמו סטאקים של התראות ב-Android Wear (שנקרא עכשיו Wear OS) שהוצגו ב-Android 5.0 (רמת API 21).
התכונה מאפשרת למשתמשים להשיב להתרעה באמצעות תשובה בשרשור. הם יכולים להזין טקסט, שיישלח לאפליקציית ההורה של ההתראה.
Android 8.0, רמת API 26
ההתראות הספציפיות יועברו לערוץ מסוים.
המשתמשים יכולים להשבית את ההתראות לכל ערוץ בנפרד, במקום להשבית את כל ההתראות מהאפליקציה.
כשהיא מופעלת, באפליקציות עם התראות פעילות מופיע תג התראה מעל סמל האפליקציה במסך הבית או במרכז האפליקציות.
מאפשרת למשתמשים לדחות התראה מהמגירה. אתם יכולים להגדיר זמן קצוב לתפוגה אוטומטית של ההתראה.
מאפשרת להגדיר את צבע הרקע של ההתראה.
העברת חלק מ-APIs שקשורים להתנהגות של התראות מ-
Notification
אלNotificationChannel
. לדוגמה, ב-Android מגרסה 8.0 ואילך, צריך להשתמש ב-NotificationChannel.setImportance()
במקום ב-NotificationCompat.Builder.setPriority()
.
Android 13.0, רמת API 33
- הוספת הרשאת זמן ריצה. כדי שהאפליקציה שלכם תוכל לשלוח התראות לא פטורות, המשתמשים צריכים להעניק לה את ההרשאה הזו.
Android 14.0, רמת API 34
הגבלת התראות Intent במסך מלא לאפליקציות שמספקות שיחות והתראות. משתמשים ב-API של
NotificationManager.canUseFullScreenIntent
כדי לבדוק אם לאפליקציה יש הרשאה. אם לא, האפליקציה יכולה להשתמש ב-ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
כדי להפעיל את דף ההגדרות שבו המשתמשים יכולים להעניק את ההרשאה.שינוי חוויית השימוש של המשתמשים בהתראות שלא ניתן לסגור, על ידי מתן אפשרות למשתמשים לסגור את ההתראות גם כשהדגל
Notification.FLAG_ONGOING_EVENT
מוגדר. המדיניות הזו לא חלה על התראותCallStyle
אם הדגלNotification.FLAG_ONGOING_EVENT
מוגדר או על פקדים של מדיניות המכשיר (DPC) וחבילות תמיכה לארגון. המדיניות הזו לא חלה גם כשהטלפון נעול, או אם המשתמש בוחר באפשרות ניקוי הכול.