רכיבי המערכת ותהליכי המשתמש

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

חלקי המערכת

איור 1. חלקי המערכת

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

רכיב תיאור
מסך הבית מייצג משטחים אחרים בממשק המשתמש של הרכב שמציגים את התוכן שמופעל כרגע ושולטים בו מדיה. ב-AOSP, זה המסך הראשי שמוצג כשמפעילים את המערכת. במסך הזה, המשתמשים יכולים לצפות בפרטים של פריט המדיה שמופעל ולהפעיל קבוצה מוגבלת של ופעולות מותאמות אישית (לדוגמה, הפעלה והשהיה).
ממשק המשתמש של המערכת מספקת פונקציונליות שכוללת אפשרויות ניווט גלובליות בממשק המשתמש, כמו ניווט אל מדיה.
עוזרים ב-Android יש מנגנונים שבהם אפליקציות שונות של עוזר דיגיטלי יכולות לקיים אינטראקציה עם המערכת. האפליקציות האלה יכולות לקיים אינטראקציה עם מקורות מדיה ברקע (לדוגמה, הפעלת שיר כתוצאה מפקודה קולית), או לנווט אל מדיה בחזית (לדוגמה, כשאפליקציית העוזר הדיגיטלי מקבלת הוראה להציג את ממשק המשתמש של מקור מדיה ספציפי).
מרכז האפליקציות כל האפליקציות ל-Android מתחילות במרכז האפליקציות, כולל מקורות מדיה. אפשר למדיה להציג בורר מקור מדיה משלו, שמשלים את מפעיל האפליקציות או מחליף אותו בתור הוא המקום ההתחלתי של המדיה.
חנות Google Play כשנעשה שימוש ב-GAS, המשתמשים מאתרים ומתקינים אפליקציות חדשות מכשיר Android. לגבי מדיה, לאחר התקנת אפליקציות, המשתמשים מופנים למדיה כדי להשלים את תהליך הכניסה או להתחיל אינטראקציה עם האפליקציה.
מנהל סשן המדיה שירות מערכת של Android שעוקב אחר סשנים של מדיה מכל מקורות המדיה ושולט בהם. הוא מספקת מנגנונים לזיהוי מקרים שבהם מקור מדיה הופך למדיה החזיתית מקור. מדיה וכל שאר האפליקציות שמציגים את מקור המדיה שמופעל כרגע (עבור למשל, במסך הבית), השתמשו ב'מנהל סשן המדיה' כדי לזהות אירועים אלה ולעדכן את ממשק המשתמש. בהתאם. מקורות מדיה יוצרים אינטראקציה עם מנהל הסשנים במדיה מדיה סשן API.
רדיו אפליקציה ייעודית לאינטראקציה עם חומרת הרדיו. חיפושי רדיו תחנות רדיו עם בחירה מהירה של תחנות שזוהו לאחרונה ומעבר בין תדרי רדיו. רכיבי ממשק המשתמש המשותפים גם לרדיו וגם למדיה מאפשרים למשתמש לעבור בין לחוויות שונות.
מנוע הסחות דעת של הנהג שירות מערכת של Android שמשמש להחלת הגבלות על חוויית המשתמש על סמך מצב הנהיגה של במכונית. למקורות מדיה, כניסה והגדרות UX (כאשר המסך נשלט ישירות על ידי מקורות מדיה), שירות זה מבטיח שלא מוצג תוכן לא בטוח כאשר הרכב במצב הנהיגה. יצרני ציוד מקורי יכולים להתאים אישית את ההגדרות של המדינות האלה ואת האופן שבו המערכת מגיבה במצבים האלה (לדוגמה, על ידי הצגת שכבת-על של מסך חוסם).

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

השקה של אפליקציית מדיה

התהליך להפעלת מדיה מופיע למטה.

השקה של אפליקציית מדיה

איור 2. השקה של אפליקציית מדיה

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

  • android.car.intent.extra.MEDIA_COMPONENT (אופציונלי). תוספת למחרוזת כדי לייצג את שם הרכיב הקבוע MediaBrowserService באפליקציית המדיה שאליה המדיה צריכה להתחבר. אם לא צוין מדיה, תוצג מדיה אפליקציית המדיה שנבחרה. אנחנו משתמשים ב-Intent הזה נקודות כניסה:

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

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

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

שילוב מדיה ממרכז האפליקציות ממרכז האפליקציות

אפליקציות מדיה לא מורשות לספק פעילות שמסומנת בהערה קטגוריה אחת (android.intent.category.LAUNCHER). כתוצאה מכך, מרכז האפליקציות (או מקבילה) חייב ליישם לוגיקה מיוחדת כדי לטפל בשילוב של מקור מדיה:

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

  • לאחר מכן, מרכז האפליקציות ישלב את החבילות האלה עם החבילות שמטמיעות android.intent.category.LAUNCHER פעילויות. אם אפליקציה מספקת של MediaBrowserService ופעילות במרכז האפליקציות, השירות נמשך בעדיפות גבוהה.

    נכון לכתיבה הזו, אף אפליקציה של מקור מדיה לא יכולה לספק פעילות במרכז האפליקציות.

  • דוגמה ללוגיקה הזו מופיעה בקוד ה-AOSP AppLauncherUtils#getAllLauncherApps()

אפשרויות להגדרה ולתהליך כניסה

אפליקציות מדיה יכולות לכלול פעילות בהגדרות שמותאמות לרכב. פעילות כזו יכולה להיות משמש להטמעת תהליכי עבודה של משתמשים שלא מטופלים על ידי ממשקי ה-API של Android Media, לדוגמה:

  • כניסה
  • יציאה
  • מעבר בין חשבונות
  • תצוגה שהמשתמש מחובר אליה כרגע (אם יש כזה)
  • הגדרת שירות

תהליך כניסה

איור 3. תהליך הכניסה לחשבון

אפליקציית המדיה בהצהרה על פעילות ההגדרות הזו עם מסנן Intent הבא:

<activity android:name=".AppSettingsActivity"
          android:exported="true
          android:theme="@style/SettingsActivity"
           android:label="@string/app_settings_activity_title">
   <intent-filter>
       <action android:name="android.intent.action.APPLICATION_PREFERENCES"/>
   </intent-filter>
</activity>

חובה להשתמש בתקשורת עם הלוגיקה הבאה:

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

  • אם כן, צריך לאפשר למשתמש לנווט לפעילות.

  • אם חלות הגבלות על חוויית המשתמש (UX) ברכב (לדוגמה, אם הרכב זז), הרווח הזה צריך מושבתת כי פעילות ההגדרות היא לא ממשק משתמש שמותאם לנהגים.

טיפול בשגיאות וכניסה לחשבון

מדיה מקיימת אינטראקציה עם אפליקציות מדיה באמצעות Android Media Session API. כחלק מהשינוי הזה API, המדיה מקבלת PlaybackState אובייקט, שמעביר את המצב הנוכחי של אפליקציית המדיה.

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

אותו תהליך יכול לשמש אפליקציות כדי לסמן מצבי שגיאה אחרים (למשל שגיאה בקישוריות השרת).

טיפול בשגיאות

איור 4. טיפול בשגיאות

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

  • קוד שגיאה אחד (PlaybackState) שווה ל- PlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED. האות הזה שאפליקציית המדיה דורשת כניסה כדי להמשיך את הפעולה. קודי שגיאה אחרים יכולים להיות שהתקבלו, שמעיד על סוגים אחרים של מצבי שגיאה.

  • הודעת שגיאה אחת (PlaybackState) (הוגדרה על ידי אפליקציות מדיה שמשתמשות ברכיב PlaybackStateCompat.Builder#setErrorMessage ) מכיל הסבר קריא לאנשים (לדוגמה, "לא נכנסת לחשבון"). צריך להציג את ההודעה הזאת המשתמש צריך להפעיל אופטימיזציה של הסחות דעת (DO).

  • אופציונלי: PlaybackState יכול לכלול את התוספות הבאות (מוגדרות על ידי מדיה) אפליקציות עם PlaybackStateCompat.Builder#setExtras ) עם המקשים הבאים.

    • android.media.extras.ERROR_RESOLUTION_ACTION_LABEL להגדיר למחרוזת מכיל הודעה שאנשים יכולים לקרוא, שתוצג בלחצן שהמשתמש נגע בו כדי להפעיל את תהליך הכניסה.

    • android.media.extras.ERROR_RESOLUTION_ACTION_INTENT הגדרה עם PendingIntent להיות מופעלת כשהמשתמש לוחץ על הלחצן שצוין למעלה. הזה PendingIntent מפנה לפעילות כניסה מותאמת אישית שהוטמעה על ידי אותה אפליקציית מדיה.

  • מצב PlaybackState שווה ל- STATE_ERROR. המשמעות היא שלא ניתן לבצע כל פעולה אחרת עד להשלמת תהליך הכניסה.