סקירה כללית של ההתראות

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

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

למידע נוסף על עיצוב התראות ודפוסי אינטראקציה, אפשר לעיין עיצוב התראות guide.

הופעות במכשיר

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

שורת סטטוס וחלונית הזזה להתראות

כששולחים התראה, היא מופיעה לראשונה כסמל בשורת הסטטוס.

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

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

איור 2. התראות בחלונית ההזזה של ההתראות.

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

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

התראה מראש

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

איור 3. התראה 'שימו לב' מופיעה לפני אפליקציה בחזית.

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

הגורמים שעשויים להפעיל התראות 'שימו לב' כוללים:

  • פעילות המשתמש מוצגת במצב מסך מלא, למשל בזמן שהאפליקציה משתמשת fullScreenIntent

  • ההתראה נמצאת בעדיפות גבוהה וכוללת רינגטונים או רטט מופעל מכשירים עם Android 7.1 (API ברמה 25) ומטה.

  • לערוץ ההתראות יש חשיבות גבוהה במכשירים מערכת Android בגרסה 8.0 (רמת API 26) ואילך.

מסך הנעילה

החל מ-Android 5.0, ניתן להציג התראות במסך הנעילה.

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

המשתמשים יכולים להשתמש בהגדרות המערכת כדי לבחור את רמת הפירוט שתהיה גלויה במנעול התראות במסך או כדי להשבית את כל ההתראות במסך הנעילה. מתחיל ב- ב-Android 8.0, המשתמשים יכולים להשבית או להפעיל התראות במסך הנעילה עבור כל אחד ערוץ התראות.

איור 4. התראות במסך הנעילה עם תוכן רגיש מוסתרים.

אפשר לקרוא מידע נוסף במאמר הגדרת מסך נעילה החשיפה.

תג של סמל האפליקציה

במרכזי אפליקציות נתמכים במכשירים עם Android מגרסה 8.0 (רמת API 26) ואילך, סמלי האפליקציה מציינים התראות חדשות עם תג צבעוני שנקרא סימן ההתראות בסמל המתאים במרכז האפליקציות.

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

איור 5. תגי התראות, המגע & לחיצה ארוכה על הלחצן.

למידע נוסף על אופן הפעולה של תגים, אפשר לקרוא את המאמר שינוי התראה .

מכשירי Wear OS

אם למשתמש יש מכשיר Wear OS מותאם, כל ההתראות יופיעו שם באופן אוטומטי, כולל לחצני פעולה ופרטים ניתנים להרחבה.

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

איור 6. התראות מופיעות באופן אוטומטי במכשירי Wear OS מותאמים במכשיר.

המבנה של ההתראות

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

איור 7. התראה עם פרטים בסיסיים.

החלקים הנפוצים ביותר של התראה מצוינים בתרשים 7, באופן הבא:

  1. סמל קטן: נדרש; מוגדר באמצעות setSmallIcon()
  2. שם האפליקציה: סופק על ידי המערכת.
  3. חותמת הזמן: סופקה על ידי המערכת, אבל אפשר לשנות אותה באמצעות setWhen() או להסתיר אותו באמצעות setShowWhen(false).
  4. סמל גדול: אופציונלי; בדרך כלל משמש רק לתמונות של אנשי קשר. אין להשתמש בו לסמל האפליקציה. הגדרה באמצעות setLargeIcon()
  5. Title: אופציונלי; מוגדר באמצעות setContentTitle()
  6. טקסט: אופציונלי; מוגדר באמצעות setContentText()

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

למידע נוסף על יצירת התראה עם התכונות האלה מידע נוסף, ניתן לקרוא את המאמר יצירת התראה.

פעולות בעת התראה

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

איור 8. התראה עם לחצני פעולה.

החל מ-Android 7.0 (רמת API 24), אפשר להוסיף פעולה שצריך להשיב לה הודעות או טקסט אחר ישירות מתוך ההתראה.

החל מ-Android 10 (רמת 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.

איור 9. התראה מתרחבת לחשבונות גדולים טקסט.

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

עדכונים של התראות וקבוצות

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

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

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

איור 10. קבוצת התראות מכווצת ומורחבת.

למידע נוסף על הוספת התראות לקבוצה, ראו יצירת קבוצה של התראות.

ערוצי התראות

החל מ-Android 8.0 (רמת API 26), יש להקצות את כל ההתראות הערוץ, או שהם לא מופיעים. כך המשתמשים יכולים להשבית התראות ספציפיות בערוצים של האפליקציה שלכם, במקום להשבית את כל ההתראות. המשתמשים יכולים לשלוט באפשרויות הוויזואליות והשמיעות של כל ערוץ ממערכת Android ההגדרות, כפי שמוצג באיור 11. המשתמשים יכולים גם לגעת ב- להחזיק התראה כדי לשנות התנהגות בערוץ המשויך.

במכשירים שמותקנת בהם גרסת Android 7.1 (רמת API 25) ומטה, המשתמשים יכולים לנהל התראות לכל אפליקציה בלבד. לכל אפליקציה יש בפועל רק ערוץ אחד ב-Android מגרסה 7.1 ומטה.

איור 11. הגדרות ההתראות של אפליקציית השעון ושל אחד מהערוצים שלה.

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

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

למידע נוסף אפשר לקרוא את המאמר יצירה וניהול של התראות הערוצים.

חשיבות התראות

מערכת Android משתמשת בחשיבות של התראה כדי לקבוע עד כמה ההתראה קוטעת את הראייה של המשתמש וקוטעת אותו. ככל שהחשיבות גבוהה יותר כך שההתראה תפריע יותר.

ב-Android 7.1 (רמת API 25) ומטה, החשיבות של התראה נקבעת לפי של ההתראה priority

ב-Android מגרסה 8.0 (רמת API 26) ואילך, החשיבות של התראות היא נקבע לפי importance של הערוץ שבו פורסמה ההתראה. המשתמשים יכולים לשנות את החשיבות של ערוץ התראות בהגדרות המערכת, כפי שמוצג באיור 12.

איור 12. המשתמשים יכולים לשנות את החשיבות של כל ערוץ ב-Android 8.0 ואילך.

רמות החשיבות האפשריות וההתנהגויות של ההתראות שמשויכות אליה הן הבאים:

  • דחוף: משמיע צליל ומוצג כהתראה 'שימו לב'.

  • גבוהה: נשמע צליל.

  • בינוני: לא משמיע צליל.

  • נמוכה: לא משמיעה צליל ולא מופיעה בשורת הסטטוס.

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

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

מצב 'נא לא להפריע'

החל מ-Android 5.0 (רמת API 21), משתמשים יכולים להפעיל את מצב 'נא לא להפריע'. שמשתיק את הצלילים והרטט עבור כל ההתראות. עדיין יופיעו התראות מופיעות בממשק המשתמש של המערכת כרגיל, אלא אם המשתמש מציין אחרת.

יש שלוש רמות זמינות במצב 'נא לא להפריע':

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

איור 13. המשתמשים יכולים לאשר התראות בהתאם קטגוריות ברמת המערכת (בצד שמאל) והשולח או המתקשר (בצד ימין).

ב-Android מגרסה 8.0 (רמת API 26) ואילך, המשתמשים יכולים גם לאפשר התראות לקטגוריות ספציפיות לאפליקציה – שנקראות גם על ידי ביטול התכונה 'נא לא להפריע' לכל ערוץ בנפרד. עבור לדוגמה, אפליקציית תשלומים עשויה לכלול ערוצים להתראות שקשורות לנושאים הבאים משיכות והפקדות. המשתמש יכול לאפשר התראות על משיכה, להפקיד התראות, או את שתיהן במצב עדיפות.

במכשירים שבהם פועלת מערכת Android בגרסה 7.1 (רמת API 25) ומטה, המשתמשים יכולים לאשר התראות לכל אפליקציה בנפרד, במקום לכל אפליקציה בנפרד בכל ערוץ בנפרד.

כדי להגדיר את ההתראות עבור הגדרות המשתמש האלו, צריך להגדיר ברמת המערכת הקטגוריה.

התראות לשירותים שפועלים בחזית

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

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

מגבלות על פרסום פוסטים

החל מ-Android 8.1 (רמת API 27), אפליקציות לא יכולות להשמיע צליל התראה יותר מפעם בשנייה. אם האפליקציה מפרסמת כמה התראות בהודעה אחת שנית, כולם מופיעים כמצופה, אך רק ההתראה הראשונה בשנייה מושמע צליל.

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

תאימות להתראות

ממשק המשתמש של מערכת ההתראות של Android וממשקי ה-API שקשורים להתראות באופן רציף להתפתח. כדי להשתמש בתכונות העדכניות ביותר של ה-API להתראות תוך תמיכה בגרסאות ישנות יותר משתמשים ב-Support Library Library API, NotificationCompat ואת מחלקות המשנה שלו, NotificationManagerCompat כך תוכלו להימנע מכתיבה של קוד מותנה כדי לבדוק את רמות ה-API, כי ממשקי API מטפלים בו.

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

לפניכם סיכום של שינויי ההתנהגות הבולטים ביותר לפי רמת API עבור התראות Android.

Android 5.0, רמת API 21

  • הצגת מסך הנעילה והתראות 'שימו לב'.

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

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

  • הוספת השיטה setPriority(), שאומרת למערכת עד כמה מפריעים התראה. לדוגמה, הגדרת העדיפות ל'גבוהה' מאפשרת ההתראה תופיע כהתראה 'שימו לב'.

  • הוספת תמיכה במקבצים של התראות ל-Android Wear (נקראת עכשיו Wear OS) מכשירים. העברת התראות למקבץ באמצעות setGroup() אין תמיכה במקבצים של התראות, שנקראים בהמשך כקבוצה או כחבילה, טאבלטים או טלפונים עד Android 7.0 (רמת API 24).

Android 7.0, רמת API 24

  • עורך מחדש את תבניות ההתראות כדי להדגיש את התמונה הראשית (Hero) הדמות.

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

  • הוספת תמיכה למכשירים ניידים, כגון טלפונים וטאבלטים, קבוצות של התראות. משתמש באותו API כמו Android Wear (נקרא עכשיו Wear) מערכת הפעלה) מחסניות התראות שנוספו ל-Android 5.0 (רמת API 21).

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

Android 8.0, רמת API 26

  • הגדרת התראות בודדות channel.

  • המשתמשים יכולים להשבית את ההתראות בכל ערוץ, במקום להשבית את כל ההתראות התראות מאפליקציה.

  • ההגדרה גורמת לכך שאפליקציות עם התראות פעילות יציגו תג התראה מעל בסמל האפליקציה שלו במסך הבית או במסך מרכז האפליקציות.

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

  • אפשר להגדיר את צבע הרקע של ההתראה.

  • העברת חלק מממשקי ה-API לגבי התנהגויות של התראות מ- Notification עד NotificationChannel לדוגמה, השתמשו NotificationChannel.setImportance() במקום NotificationCompat.Builder.setPriority() ל-Android מגרסה 8.0 ואילך.

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