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

איור 1. מסלול משתמש להחלפת מקור מדיה
כדי לספק מעבר חלק בין הרדיו לבין אפליקציות אחרות במדיה, ספריית car-media-common מגדירה כוונות של Android שאפשר להשתמש בהן כדי להפעיל בורר של מקורות מדיה. ב-AOSP, בורר האפליקציות מיושם במרכז האפליקציות, והוא מציג את אותו ממשק משתמש להפעלת אפליקציות, אבל הוא מסונן כך שיוצגו רק מקורות מדיה.
יצרני ציוד מקורי יכולים לבחור להשתמש בהטמעה הנוכחית של מרכז האפליקציות כמו שהיא, או להטמיע בורר מקורות מדיה מותאם אישית.
הבורר יכול לפעול בשני מצבים:
- תהליך רגיל. אחרי השימוש בכלי לבחירת מקורות, המקור שנבחר מוצג במדיה כדי שהמשתמש יוכל לעיין בתוכן שלו.
- כמתג. נעשה שימוש בבורר כדי להחליף מקורות, אבל המדיה לא מוצגת למשתמש. זה נכון לגבי סמל הבורר בדף הבית. אחרי שבוחרים מקור, המשתמש רואה את המסך הקודם האחרון (במקרה הזה, דף הבית).
אפשר לקבל את הכוונה שמשמשת למעבר בין מקורות מדיה מהשיטה MediaSource#getSourceSelectorIntent(), שמקבלת ערך בוליאני popup ומחזירה כוונה להפעיל כל אחד מהתהליכים שמתוארים למעלה.
הכוונה בפועל מוגדרת בכתובת packages/apps/Car/libs/car-media-common/res/values/config.xml. כדי להתאים אישית את ההגדרה הזו, משתמשים בשכבות-על בזמן הבנייה.
החלפת אפליקציית הרדיו
בהנחה שאפליקציית הרדיו מטמיעה את Media Browse ו-Media Session, אפליקציית הרדיו מוצגת במרכז האפליקציות. כדי למנוע הפעלה של Media כשמשתמש לוחץ על הסמל, צריך שני רכיבים: רדיו חייב:
- להיות פעילות של מרכז האפליקציות.
- להיות מוצהר כמקור בהתאמה אישית. כדי לעשות זאת, מוסיפים את שם הרכיב למפתח
custom_media_packagesב-car-media-common/res/values/config.xml.
הגבלות על חוויית המשתמש בנהיגה
הצגת מדיה חייבת לעמוד בכל ההגבלות על חוויית המשתמש שנועדו למנוע הסחת דעת בזמן הנהיגה. לשם כך, Media צריך להאזין ל-CarUXRestrictionManager וליישם את כל כללי המדיניות שלו.
- אפליקציות מדיה צריכות להתחבר לספריית Car ולקבל מופע של CarUXRestrictionManager.
- אפליקציות מדיה צריכות להירשם לעדכונים ברשימה של CarUxRestrictions וליישם אותם כמו שמתואר במסמכים.
- הדברים הבאים חשובים במיוחד ל-Media:
UX_RESTRICTIONS_NO_SETUP. במקרה כזה, צריך להשבית את תהליך הכניסה.UX_RESTRICTIONS_LIMIT_STRING_LENGTH. הודעות שגיאה וטקסטים אחרים שמסופקים על ידי אפליקציות המדיה צריכים להיות מוגבלים לאורך שצוין.