מערכת Android Automotive OS (AAOS) משתמשת בדגלים ובהגדרות כדי להפעיל תכונות שונות, החל מניתוב דינמי ועד לדגלי תכונות כלליים יותר, כמו שליטה בעוצמת הקול משירות הרכב. כאן מפורטים דגלי ההגדרה הנוכחיים של AAOS לניהול אודיו.
| דגל | מטרה |
|---|---|
audioUseDynamicRouting |
מוגדר בקובץ ההגדרות של שירות הרכב כדי להפעיל ניתוב ב-AAOS.
ההגדרה חייבת להיות true. כשהערך הוא false, הניתוב וחלק גדול מההגדרות של CarAudioService מושבתים, ומערכת ההפעלה חוזרת להתנהגות ברירת המחדל שמתוארת במאמר הגדרת מדיניות אודיו.
|
useCoreAudioRouting |
מוגדר בקובץ ההגדרות של שירות הרכב כדי להפעיל את הניהול של ניתוב האודיו בליבת AAOS.
כשהערך מוגדר ל-true, שירות האודיו ברכב משתמש בהגדרות שנקבעו באמצעות מנוע מדיניות האודיו שניתן להגדרה.
אם הערך מוגדר כ-false, ניהול הניתוב חוזר להשתמש בהגדרה של שילוב מדיניות האודיו הדינמית של שירות האודיו ברכב, כפי שהוגדר באמצעות audioUseDynamicRouting.
|
useCoreAudioVolume |
מוגדר בקובץ ההגדרות של שירות הרכב כדי להפעיל את ניהול עוצמת הקול של ליבת האודיו ב-AAOS.
כשהערך מוגדר ל-true, שירות האודיו ברכב משתמש בהגדרות של קבוצות עוצמת הקול שהוגדרו באמצעות מנוע מדיניות האודיו שניתן להגדרה.
אם הערך מוגדר כ-false, ניהול עוצמת הקול חוזר להשתמש בהגדרת ברירת המחדל של קבוצת עוצמת הקול של שירות האודיו ברכב, כפי שהוגדר באמצעות audioUseDynamicRouting.
|
audioUseCarVolumeGroupMuting |
מוגדר בקובץ התצורה של שירות הרכב כדי להשתיק קבוצות של עוצמת קול בנפרד. כשהערך מוגדר כ-false (ברירת המחדל), ההשתקה של קבוצות עוצמת קול ספציפיות מושבתת. במקום זאת, ההשתקה משביתה את ההשתקה הראשית.
כשההגדרה היא true, ההשתקה של קבוצת עוצמת הקול ברכב מופעלת, ואפשר להשתיק כל קבוצת עוצמת קול בנפרד. כשמשתיקים את קבוצת עוצמת הקול true,
צריך להטמיע את ההשתקה ב-Audio Control HAL.
|
audioUseHalDuckingSignals |
מוגדר בקובץ ההגדרות של שירות הרכב כדי לאפשר ל-API IAudioControl#onDevicesToDuckChange להודיע ל-HAL מתי להנמיך את עוצמת הקול. כשמגדירים את הערך true (ברירת מחדל), ה-API מקבל אותות שמציינים אילו מכשירי פלט צריך להנמיך ואילו שימושים מחזיקים את המיקוד. כשמגדירים את false,
לא מתבצעת קריאה ל-API. ה-API לא מופעל אלא אם Audio Control HAL מטמיע הנמכה.
|
config_oemCarService |
מוגדר בקובץ התצורה של שירות הרכב, זהו שם הרכיב של שירות ההתאמה האישית של יצרן הציוד המקורי. יצרני ציוד מקורי יכולים לבחור להטמיע את השירות הזה כדי להתאים אישית פעולות של שירותים לרכב בהתאם לכללי מדיניות שונים. אם יצרני ציוד מקורי בוחרים להטמיע את הרכיב הזה, הם צריכים להטמיע שירות כדי להרחיב את OemCarService שנחשף על ידי car-lib, ואז להטמיע את שירותי הרכיבים הנדרשים. במקרה של שירות אודיו לרכב, יצרני ציוד מקורי (OEM)
יכולים להטמיע כל אחד משירותי המשנה של האודיו כדי לנהל פעולות שקשורות לאודיו. פרטים נוספים זמינים במאמר בנושא שירות פלאגין של אודיו לרכב.
אם שם הרכיב לא תקין, CarService לא יתחבר לשום שירות OEM. שם הרכיב לא יכול להיות חבילה של צד שלישי. צריך להתקין אותו מראש. |
audioVolumeAdjustmentContextsVersion |
ההגדרה מוגדרת בקובץ ההגדרות של שירות הרכב, והיא מאפשרת לבחור את הגרסה של רשימת העדיפויות של הקשר להתאמת עוצמת הקול. גרסה 1 כוללת את כל ההקשרים של האודיו, בסדר הזה:
גרסה 2 מוגבלת להקשרים הבאים, לפי הסדר הזה. גרסת ברירת המחדל היא
|
audioPersistMasterMuteState |
ההגדרה מוגדרת בקובץ התצורה של שירות הרכב, והיא מאפשרת לשמור את מצב ההשתקה הגלובלי. כשמגדירים את הערך true (ברירת המחדל), מערכת Android משחזרת את מצב ההשתקה הגלובלי בזמן האתחול. אם audioUseCarVolumeGroupMuting הוא true, אין לכך השפעה על שינויים בהשתקה שנשמרים, כי שינויים בהשתקה מבוססים על קבוצות עוצמת קול נפרדות. ערך ברירת המחדל הוא true, וצריך לשנות אותו אם לא רוצים שההשתקה הראשית תישמר במכשיר. |
audioVolumeKeyEventTimeoutMs |
ההגדרה מוגדרת בקובץ ההגדרות של שירות הרכב, ומציינת את הזמן הקצוב לתפוגה באלפיות השנייה, שבמהלכו קבוצת עוצמת הקול של הרכב נחשבת פעילה לשינויים בבקרת עוצמת הקול במהלך אירועים של מקשי עוצמת הקול. ההגדרות משמשות באופן הבא:
ערך ברירת המחדל הוא |
audioUseCarVolumeGroupEvent |
הגדרה בקובץ התצורה של שירות הרכב שמאפשרת אירועי קריאה חוזרת לקבוצות עוצמת הקול. כשמגדירים את true, לקוחות מקבלים קריאה חוזרת
דרך ICarVolumeGroupEvent לאירועים שמשפיעים על קבוצות של נפח. כשהאפשרות מופעלת:
ערך ברירת המחדל הוא |
config_useFixedVolume |
מוגדר ב-frameworks/base/core/res/res/values/config.xml.
צריך להגדיר את הערך true כדי לאפשר לשירות האודיו של הרכב לנהל את בקרת עוצמת הקול. אם הדגל config_useFixedVolume לא מוגדר או מוגדר ל-false (ערך ברירת המחדל), אפליקציות יכולות לקרוא לממשקי ה-API לניהול עוצמת הקול AudioManager ולשנות את עוצמת הקול לפי סוג הזרם במיקסר התוכנה. יכול להיות שזה לא רצוי בגלל ההשפעה הפוטנציאלית על אפליקציות אחרות, ובגלל העובדה שהנחתת עוצמת הקול במיקסר התוכנה יכולה להוביל לכך שיהיו פחות ביטים משמעותיים זמינים באות כשהוא מתקבל במגבר החומרה. מכשירים חדשים שלא הוגדרו ומוגדרים לקבל שינויים בעוצמת הקול דרך ממשקי ה-API של עוצמת הקול וההשתקה.trueAudioManager
|
config_handleVolumeKeysInWindowManager |
מוגדר ב-frameworks/base/core/res/res/values/config.xml, צריך
להגדיר את הערך true כדי לאפשר לשירות האודיו ברכב ליירט
אירועים של מקשי עוצמת הקול. אם הערך מוגדר ל-false (ברירת המחדל), אפשר להעביר אירועים של כפתור עוצמת קול לאפליקציה שפועלת בחזית, וזה עלול להוביל לתוצאות לא רצויות מניהול של אירועים של כפתור עוצמת קול מחוץ לשירות האודיו ברכב. |
audioUseMinMaxActivationVolume |
מוגדר בקובץ ההגדרות של שירות המכוניות כדי להפעיל
נפח הפעלה מינימלי ומקסימלי. כאשר
true, אפשר לשנות את אינדקס הגברת עוצמת הקול בגלל
ניהול עוצמת הקול המינימלית והמקסימלית להפעלה. כאשר
false (ערך ברירת המחדל), נפח ההפעלה המינימלי והמקסימלי לא משפיע.
|
audioUseFadeManagerConfiguration |
מוגדר בקובץ ההגדרות של שירות הרכב כדי להפעיל
התנהגות של אובדן מיקוד באודיו שנאכפת על ידי המערכת. כש-true,
car audio framework מנתח את הגדרות ההנמכה של האודיו ברכב ומחיל את FadeManagerConfiguration המתאים כשמתבצעת שליחה של
איבוד המיקוד באודיו. אם הערך הוא false (ברירת מחדל), המערכת לא אוכפת התנהגות של דעיכה כשאפליקציה מאבדת את המיקוד באודיו.
|
הגדרות של שירות האודיו ברכב
לפני Android 13, ההגדרות של שירות הרכב נמחקו והוחלפו בהגדרות של שכבת-על של תצורת מוצר (מידע נוסף זמין במאמר התאמה אישית של ה-build באמצעות שכבות-על של משאבים) עבור הקובץ packages/services/Car/service/res/values/config.xml.
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
המיקום של קובץ ההגדרות מ-<path_to_overlay> למיקום בפועל צריך לכלול את packages/services/Car/service/res/values/.
הזמנות לתיקון רכב
החל מ-Android 13, מערכת AAOS תומכת בשכבות-על של משאבים בזמן ריצה. משתמשים ב-RRO כדי לשנות את הערך של הגדרת האודיו ברכב. לדוגמה, אפשר לעיין ב-RROs של cuttlefish לרכב ב-device/google/cuttlefish/shared/auto/rro_overlay/. ההגדרה audioUseDynamicRouting מבוטלת ב-device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.
<resources>
<bool name="audioUseDynamicRouting">true</bool>
...
מפת שכבת-העל של המשאבים נמצאת ב-device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:
<overlay>
...
<item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>
קובץ המניפסט של שכבת-העל של המשאב שמוגדר ב-device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml מכיל את targetPackage שמוגדר כ-com.android.car.updatable.
מידע נוסף זמין במקורות המידע הבאים:
API עם תכונות מופעלות
השיטה מחזירה true אם התכונה מופעלת במכשיר, אחרת היא מחזירה false. ב-API CarAudioManager#isAudioFeatureEnabled, הפרמטר שמועבר חייב להיות אחד מהערכים הבאים:
AUDIO_FEATURE_DYNAMIC_ROUTINGAUDIO_FEATURE_VOLUME_GROUP_MUTINGAUDIO_FEATURE_OEM_AUDIO_SERVICEAUDIO_FEATURE_VOLUME_GROUP_EVENTSAUDIO_FEATURE_AUDIO_MIRRORING