התראות ב-Android Automotive OS

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

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

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

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

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

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

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

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

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

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

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

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle
  • ProgressStyle

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

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

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

הגבלות על חוויית המשתמש בהתאם למצב הנהיגה

‫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.

Notification.Builder

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

טבלה 1. שינויים בשיטות שגלויות לכולם עבור Notification.Builder

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

addAction()

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

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

ללא פעולה RemoteViews ולא תהיה תמיכה בתצוגות מפורטות של תוכן בהתאמה אישית.

setBadgeIconType()

setNumber()

ללא פעולה אין תמיכה בתגיות של ההתראות.

setChronometerCountDown()

setUsesChronometer()

ללא פעולה אין תמיכה בטיימרים לספירה לאחור.
setColorized() המגבלות השתנו

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

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

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

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

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

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

setVisibility()

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

טבלה 2. שינויים בכיתות משנה ב-Notification.Builder

כיתות מקוננות אפקט תיאור

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

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

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

Notification.CarExtender

Notification.WearableExtender

לא בשימוש אין תמיכה במאריכים.

Notification.Action.Builder

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

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

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