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