הרשאה לשליחת התראות על הבעת הסכמה

ההתראות ב-Android 13 מבוססות על מודל הצטרפות (opt-in), בניגוד לגרסאות קודמות של Android, שבהן ההתראות מבוססות על מודל ביטול ההצטרפות (opt-out). ב-Android 13, כל האפליקציות חייבות לבקש מהמשתמשים הרשאה לפני שהן שולחות בקשות להצגת התראות. המודל הזה עוזר לצמצם את ההפרעות שנגרמות מהתראות, למזער את עומס המידע ולעזור למשתמשים לשלוט בהתראות שמוצגות להם על סמך מה שחשוב להם. כדי לתמוך במודל ההסכמה, יצרני ציוד מקורי (OEM) צריכים להטמיע שינויים במערכות ההתראות וההרשאות בזמן הריצה.

בדף הזה מוסבר מה יצרני ציוד מקורי (OEM) צריכים להטמיע כדי לתמוך בשינוי הזה, ואיך לאמת את ההטמעה.

הטמעה של שינויים בהתראות שדורשות הסכמה

החל מ-Android 13, אפליקציות צריכות להצהיר על הכוונה שלהן לשלוח התראות על ידי בקשת הרשאת זמן הריצה android.permission.POST_NOTIFICATION מהמערכת לפני שהן יכולות לשלוח התראות.

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

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

התנהגות של התראות למשתמשים במודל של בקשת הסכמה

בטבלה הבאה מוצגת התנהגות ההתראות בגרסאות שונות של אפליקציות במכשיר עם Android 13:

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

האפליקציות קובעות מתי לבקש הרשאה.

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

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

אפליקציה קיימת (שדרוג) ההתראות מותרות עד שהאפליקציה מבקשת אישור.

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

ההתראות מותרות עד שהמערכת תבקש לאשר אותן.

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

הנחיות להטמעה

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

במהלך ההטמעה, צריך לפעול לפי ההנחיות הבאות לגבי התנהגות של הודעות למשתמשים באפליקציות שמטרגטות גרסאות SDK של Android 13 ומטה:

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

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

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

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

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

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

  • התראות מדיה שמשויכות להפעלת מדיה מתמשכת צריכות להיות פטורות מהרשאה לשליחת התראות.

אימות השינויים במערכות ההתראות וההרשאות

כדי לאמת את ההטמעה, מריצים את הבדיקות הבאות: