בקטע הזה מוסבר איך להתאים אישית את אפליקציית ההפניה של מרכז הבקרה ואת ממשק המשתמש.
מסלולי המשתמש באפליקציה וממשק המשתמש
בקטע הזה מוסבר על תהליכי המשתמשים ואיך מפעילים את מרכז הבקרה.
הפעלת מרכז הבקרה
אפשר להפעיל את מרכז הבקרה דרך מרכז האפליקציות או דרך סמל בסרגל הניווט של ממשק המשתמש של המערכת. הסמל מופיע רק בגרסאות שבהן הופעלה האפשרות 'משתמשים גלויים ברקע' (מידע נוסף זמין במאמר UserHandleAware).
אפשר לצפות במרכז הבקרה בכל שלב. מרכז הבקרה מורכב משילוב של חלונות שקופים ורקעים שקופים, כך שהוא יכול להופיע מעל כל אפליקציה אחרת, כולל סרטונים ומדיה שמופעלים באופן פעיל. בדף הנחיתה של האפליקציה:
- סידור המסכים והשימוש במסכים המקומיים והמרוחקים.
- המסכים מאוכלסים במדיה ובאמצעי בקרה של המדיה.
- איך כל מסך מציג תצוגה מפורטת של אמצעי הבקרה של המדיה (ועוד).
הסידור של המסכים מייצג את הפריסה של המסכים ברכב. כל מסך הוא DevicePickerScreen. כדי להתאים אישית את המיקום והגודל של כל מסך, משתמשים בשכבת-על של משאב בזמן ריצה (RRO). מידע נוסף זמין במאמר שינוי הערך של משאבי אפליקציה בזמן ריצה.
לכל מסך שבו פתוח מרכז הבקרה, מוצג מסך שונה עם גבול מודגש בהיר. זהו המסך המקומי, התצוגה שבשימוש.
כל מסך אחר הוא מסך מרוחק שמייצג תצוגה שונה ברכב שאפשר לזהות לפי סידור המסכים ב-Fragment. כדי לחשב את המספר הכולל של אזורי הנוסעים שהוגדרו ברכב, משתמשים בפונקציה CarOccupantZoneManager#getAllOccupantZones.
בכל מסך מוגדר מאפיין מותאם אישית controlcenter:occupantZoneId כדי לשייך נתונים לאזור הרלוונטי. כשמפעילים אפליקציית מדיה במסך מסוים, עטיפת האלבום של המדיה מוצגת במסך המתאים. לחצן הפעלה (או השהיה) מוצג מתחת למסך.
אם אפליקציית המדיה הפעילה היא משימה גלויה (נפתחה מאחורי מרכז הבקרה), הכפתור שיתוף שנמצא לצד הכפתור הפעלה מופעל כדי לפתוח את דף השיקוף. שיתוף מאפשר לכם לשתף את התצוגה של אפליקציית המדיה, והוא הכי שימושי באפליקציות מדיה עם סרטונים.
רכיבים במסך
הקשה על המסך מציגה תצוגה מפורטת של המדיה שמופעלת בתצוגה. זה נקרא מסך הפרטים. בתצוגה מוצגים מטא-נתונים של מדיה, כמו כותרת, התקדמות ההפעלה ואומן. הלחצנים האלה מספקים שליטה נוספת באזור התפוס.
בקטע פלט אודיו מוצג פלט האודיו שדרכו המדיה מושמעת, כמו רמקולים ברכב או אוזניות. פלט אודיו פותח תיבת דו-שיח שבה אפשר לשנות את פלט האודיו ואת עוצמת הקול של המדיה.
הצגת נעילת הקלט נועלת את הקלט למסך. אי אפשר להחיל את הפעולה הזו על המסך של הנהג.
הפעלה של המסך מכבה את המסך. אי אפשר להחיל את הפעולה הזו על המסך של הנהג.
בתצוגה פרטים מוצג לחצן שיתוף שאפשר להקיש עליו כשהתוכן הוא משימה גלויה מאחורי אפליקציית מרכז הבקרה. כשמקישים על שיתוף נפתח דף השיקוף:
איך מתחילים צפייה משותפת
דף השיקוף דומה לדף הנחיתה בכך שהוא משתמש ב-RRO.
כדי להוסיף מסך לצפייה משותפת, מקישים על המסך ואז על סיום.
פעולה כזו תפתח Mirroring Activity שבו מתארחת האפליקציה המשותפת, ותספק אמצעי בקרה זמניים וצפים כדי לצאת מהפעילות של הצפייה המשותפת או לחזור לדף השיתוף כדי להוסיף או להסיר משתתפים.
סיכום
ריכזנו כאן סיכום של הדפים השונים במרכז הבקרה.
הנחיות להתאמה אישית
מרכז הבקרה משתמש בספריית ממשק המשתמש של הרכב כדי לאפשר לכם להתאים אישית את הממשק, ומספק עיצוב ומבנה בסיסיים שאפשר להשתמש בהם כמו שהם או לשנות אותם בהתאם למגבלות האלה.
| התאמה אישית | תיאור |
|---|---|
| SHOULD |
להתאים את העיצוב והסגנון הכלליים באמצעות RRO, למשל:
|
| MAY | לשנות את המבנה הכללי של ממשק המשתמש של מרכז הבקרה. |
מרכז הבקרה שייך לחבילה של אפליקציות מערכת, שכוללת את Media, Notification Center ו-App Launcher. האפליקציות האלה משתפות סגנונות ונכסים שמוגדרים ברמות שונות של מבנה ה-AOSP:
framework/base/coreTheme.DeviceDefault, העיצוב שמיועד לשימוש על ידי יצרני ציוד מקורי (OEM) כדי להתאים אישית את מראה ברירת המחדל של המכשיר.packages/services/Car/car_product/overlay:Theme.DeviceDefault שמשמשים ליצירת המראה והתחושה של AOSP ב-Android Automotive. יצרני ציוד מקורי (OEM) יכולים לבחור להחריג את שכבת העל הזו ולהשתמש בשכבת על משלהם.packages/apps/Car/libs/car-ui-lib:packages/apps/Car/libs/car-apps-common:packages/services/Car/car_product/overlay).packages/apps/Car/MultiDisplay/ControlCenter:Theme.CarUi ומוגדר ב-car-ui-lib. ControlCenterActivity משתמש ב-custom
Theme.Transparent, שמרחיב את Theme.CarUi.כדי לתמוך בתהליך (כמו צפייה משותפת שדורשת שהמשימה המשוכפלת תהיה גלויה), מרכז הבקרה משתמש בשילוב של חלונות שקופים ורקעים שקופים שלא מעבירים את האפליקציה לרקע או שולחים Lifecycle events.
<style name="Theme.Transparent" parent="@style/Theme.CarUi.NoToolbar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/transparent</item>
</style>