ההתראות ב-Android 13 מבוססות על מודל הבעת הסכמה, הוא שינוי לעומת גרסאות קודמות של Android, שבהן נעשה שימוש במודל של ביטול הסכמה. לחשבון Android 13, כל האפליקציות צריכות לבקש הרשאה מהמשתמשים לפני לשלוח הודעות בנוגע להתראות. המודל הזה עוזר להפחית את כמות ההתראות הפרעות, צמצום עומס מידע ועוזר למשתמשים לשלוט מופיעות בהתאם למה שחשוב להם. כדי לתמוך להבעת הסכמה, יצרני ציוד מקורי חייבים להטמיע שינויים בהתראה ובזמן הריצה ומערכות הרשאות.
בדף הזה נסביר מה יצרני ציוד מקורי חייבים להטמיע כדי לתמוך בשינוי הזה, ואיך כדי לאמת את ההטמעה.
הטמעת שינויים בהתראות לקבלת הסכמה
החל מ-Android 13, המפתחים צריכים להצהיר באפליקציות שלהם
בכוונה לשלוח התראות, על ידי בקשת
android.permission.POST_NOTIFICATION
הרשאה בתחילת ההפעלה של המערכת לפני שליחת התראות.
ב-Android מגרסה 13 ואילך, ההגדרה שקובעת אם אפליקציה יכולה לשלוח התראות למשתמש שמורה במערכת ההרשאות. לפני Android 13, ההגדרה הזו נשמרה במערכת ההתראות, לכן, יצרני ציוד מקורי חייבים להעביר את נתוני ההתראות הקיימים לגבי האפשרות של אפליקציה לשלוח התראות, במערכת ההרשאות של סביבת זמן הריצה. יצרני ציוד מקורי חייבים גם לתחזק ממשקי 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.
התראות מדיה שמשויכות להפעלה רציפה של מדיה חייבות להיות פטורות מהרשאה לשליחת התראות.
אימות שינויים במערכות ההתראות וההרשאות
כדי לאמת את ההטמעה, מריצים את הבדיקות הבאות:
בדיקות יחידה (unit testing) כפי שמצוין ב-
PreferencesHelperTest
,NotificationManagerServiceTest
כל בדיקה ידנית שבה נבדקות השדרוגים והגיבוי והשחזור.
כל בדיקת מערכת של הרשאות והתראות של CTS ששולחת התראות. חלק מהבדיקות האלה ממוקמות בכתובת cts/tests/tests/permission/, NotificationManagerTest.java, ו-cts/tests/tests/notificationLegacy/.