התראות ב-Android Automotive OS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • הוא שייך לקטגוריה CATEGORY_MESSAGE.
  • הוא משתמש בסגנון Notification.MessagingStyle.
  • הוא כולל רק הודעות שלא נקראו.
  • יש לו לחצן לסימון כפריט שנקרא 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 או גבוה יותר, ובתנאי שההתראה שייכת לאחת מהקטגוריות הבאות:

משך החיים של התראת "שימו לב"

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

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

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

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

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

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

Notification.Builder

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

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

‫methods ציבוריים אפקט תיאור

addAction()

פעולה מותנית ללא שינוי 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. שינויים בכיתות משנה (nested classes) עבור 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. שינויים ב-methods ציבוריות עבור Notification.Action.Builder

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