התראות ב-Android Automotive OS

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

ההבדלים בין ההתראות ברכב

כדי ליצור סביבה בטוחה לנהיגה ללא הסחות דעת, ההתראות ב-Android Automotive OS שונות מההתראות במכשירים אחרים בדרכים הבאות:

  • אינטראקציה פשוטה של משתמשים
  • הגבלות על חוויית המשתמש (UX) על סמך מצב הנסיעה

אינטראקציה פשוטה של משתמשים

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

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

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

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

אפשרויות פשוטות יותר לתצוגת ההתראות

אין תמיכה ב-RemoteViews ובתצוגות תוכן בהתאמה אישית. בנוסף, אין תמיכה בסגנונות ההתראות הבאים:

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle

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

ניהול פשוט יותר של ערוץ ההתראות

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

הגבלות על חוויית המשתמש (UX) על סמך מצב הנסיעה

Android Automotive OS כולל מנוע הגבלות על חוויית המשתמש. יצרני הרכב יכולים להשתמש במנוע הזה כדי להגביל את ההתראות על סמך מצב הנסיעה של הרכב בדרכים הבאות:

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

סוגי המשאבים הנתמכים

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

  • Drawables
  • סמלים
  • תמונות

דרישות התאימות להתראות על הודעות

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

התראה על הודעה תואמת לרכב אם היא עומדת בדרישות הבאות:

  • הוא שייך לקטגוריה CATEGORY_MESSAGE.
  • הוא משתמש בסגנון Notification.MessagingStyle.
  • הוא כולל רק הודעות שלא נקראו.
  • יש לו סמל לסימון כנקרא Action שעומד בדרישות הבאות:

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

    • הפעולה הסמנטית מוגדרת כ-Action.SEMANTIC_ACTION_REPLY.
    • הערך Action מציין שלא מוצג ממשק משתמש כלשהו כשהאירוע מופעל.
    • השדה Action מכיל RemoteInput אחד.

מרכז ההתראות

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

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

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

התראות מקובצות

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

התראות שלא מופיעות במרכז ההתראות

ההתראות הבאות לא מופיעות במרכז ההתראות:

  • Media playback התראות. מערכת Android Automotive OS אוספת מידע על הפעלת מדיה מתמשכת ומציגה אותו במקום ייעודי בממשק המשתמש. חשוב לזכור שצריך להפעיל את setMediaSession עם אסימון שאינו null כדי שההתראה תזוהה כ'הפעלת מדיה'.
  • התראות על מסלול מפורט עבור CATEGORY_NAVIGATION.
  • התראות על שירותים שפועלים בחזית לאפליקציות עם הרשאות מערכת ולאפליקציות שנחתמו באמצעות מפתח הפלטפורמה, ברמת חשיבות נמוכה מ-IMPORTANCE_DEFAULT.

התראות 'שימו לב'

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

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

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

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

אפליקציות עם הרשאות מערכת ואפליקציות חתומות במפתח הפלטפורמה
האפליקציה יכולה להפעיל התראה 'שימו לב' על ידי הגדרת רמת החשיבות של ערוץ ההתראות ל-IMPORTANCE_HIGH או יותר.
כל האפליקציות האחרות

כדי שהאפליקציה תוכל להפעיל התראה 'שימו לב', צריך להגדיר את רמת החשיבות של ערוץ ההתראות ל-IMPORTANCE_HIGH או יותר, ולוודא שההתראה שייכת לאחת מהקטגוריות הבאות:

מחזור החיים של התראת 'שימו לב'

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

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

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

כשמסירים התראה מראש, היא מופיעה במרכז ההתראות, אלא אם מדובר בהתראה מסוג CATEGORY_NAVIGATION.

שינויים והגבלות ב-Notification API לכלי רכב

בקטע הזה נסכם את ההבדלים בין כל סוג, שבו התנהגות Notifications API שונה או שיש לו הגבלות ב-Android Automotive OS.

Notification.Builder

בטבלאות 1 ו-2 מתוארים השינויים וההגבלות ב-API בכיתה Notification.Builder.

טבלה 1. שינויים בשיטות הציבוריות של Notification.Builder

שיטות ציבוריות אפקט תיאור

addAction()

פעולה מותנית ללא תפעול (no-op) בהתראות Notification.MessagingStyle צריך להוסיף את הפעולות שצוינו בדרישות התאימות. פעולות נוספות שיתווספו לא יופיעו כלחצני התראות.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

פעולה ללא תוצאה (no-op) אין תמיכה ב-RemoteViews ובתצוגות תוכן בהתאמה אישית.

setBadgeIconType()

setNumber()

פעולה ללא תוצאה (no-op) אין תמיכה בתגים של התראות.

setChronometerCountDown()

setUsesChronometer()

פעולה ללא תוצאה (no-op) אין תמיכה בספירה לאחור.
setColorized() המגבלות השתנו

אפליקציות בחתימה של פלטפורמה: אפשר להגדיר אותן, והן מותרות כברירת מחדל.

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

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

setFullScreenIntent() התנהגות השתנתה לא מפעילה את הכוונה באופן אוטומטי.
setLargeIcon() התנהגות שהשתנתה סמלים גדולים מוצגים בצד שמאל של ההתראה.
setLights() פעולה ללא תוצאה (no-op) במכשירי Android Automotive OS אין נוריות LED.
setOngoing() התנהגות השתנתה

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

setOngoing() מונע סגירה של התראת 'שימו לב' רק אם היא מתייחסת לשיחה נכנסת. כדי שתוכלו להציג התראת 'שימו לב' על שיחה נכנסת שלא ניתן לסגור, ההתראה צריכה לעמוד בדרישות של setPublicVersion()‎

setVisibility()

פעולה ללא תפעול (no-op) אין תמיכה במצב פרטי.
setSettingsText() פעולה ללא תפעול (no-op) ההתראות לא תומכות באפשרויות קישור להגדרות האפליקציה. במקום זאת, הנהגים יכולים לגשת להגדרות האפליקציה דרך האפליקציה.
setTicker() פעולה ללא תפעול (no-op) אין תמיכה בטקסט של אסימון.

טבלה 2. שינויים בכיתות בתצוגת עץ ב-Notification.Builder

כיתות בתצוגת עץ אפקט תיאור

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

צולם בלי מבזק רק טקסט הסיכום מוצג. אין תמיכה בהתראות מפורטות לגבי הסגנונות האלה.
Notification.BubbleMetadata צולם בלי מבזק אין תמיכה בבועות.
Notification.MediaStyle מוסתר התראות בסגנון הזה מוסתרות. מערכת ההפעלה Android Automotive OS מנהלת אינטראקציות של ממשק המשתמש עבור התראות מדיה והפעלה של מדיה.
Notification.MessagingStyle התנהגות השתנתה

ההתראות בסגנון הזה כוללות את ההבדלים הבאים:

Notification.CarExtender

Notification.WearableExtender

צולם בלי מבזק אין תמיכה ב-Extenders.

Notification.Action.Builder

בטבלה 3 מתוארים השינויים וההגבלות ב-API בכיתה Notification.Action.Builder.

טבלה 3. שינויים בשיטות הציבוריות של Notification.Action.Builder

שיטות ציבוריות אפקט תיאור
קונסטרוקטורים גלויים לכולם התנהגות השתנתה המערכת מתעלמת מסמלים שצוינו בקונסטרוקטורים ציבוריים.
addRemoteInput התנהגות השתנתה כדי למזער את הסחות הדעת של הנהג, עוזר דיגיטלי, כמו Google Assistant, מזין את התשובה להודעה בשם המשתמש. המשתמשים לא יכולים להקליד הודעות.
setAllowGeneratedReplies פעולה ללא תפעול (no-op) אין תמיכה בתשובות מהירות.