תצורת אודיו דגלי AAOS, דגלי תצורת אודיו AAOS

מערכת ההפעלה Android Automotive (AAOS) משתמשת בדגלים ובתצורות כדי לאפשר תכונות שונות, החל בניתוב דינמי לדגלי תכונה כלליים יותר, כגון בקרת עוצמת הקול משירות הרכב. דגלי תצורת AAOS נוכחיים לניהול אודיו מתוארים כאן.

דֶגֶל מַטָרָה
audioUseDynamicRouting מוגדר בקובץ התצורה של שירות הרכב לאפשר ניתוב AAOS . התצורה חייבת להיות מוגדרת כ- true . כאשר false , הניתוב וחלק גדול מה- CarAudioService מושבתים ומערכת ההפעלה חוזרת להתנהגות ברירת המחדל המתוארת בהגדרת מדיניות שמע .
audioUseCarVolumeGroupMuting מוגדר בקובץ התצורה של שירות המכונית כדי לאפשר השתקה של קבוצות נפח בודדות. כאשר מוגדר כ- false (ערך ברירת המחדל), ההשתקה של קבוצות אמצעי אחסון בודדות מושבתת. במקום זאת, ההשתקה מחליפה את ההשתקה הראשית. כאשר מוגדר כ- true , השתקת קבוצת עוצמת הקול במכונית מופעלת וניתן להשתיק כל קבוצת עוצמת הקול בנפרד. כאשר true , יש ליישם השתקת קבוצת עוצמת הקול ב- Audio Control HAL .
audioUseHalDuckingSignals מוגדר בקובץ התצורה של שירות הרכב כדי לאפשר IAudioControl#onDevicesToDuckChange API להודיע ​​ל-HAL מתי להתחמק. כאשר true (ערך ברירת מחדל), ה-API מקבל אותות המציינים אילו התקני פלט יש להתחמק ואיזה שימושים מחזיקים בפוקוס. כאשר false , ה-API לא נקרא. ה-API לא נקרא אלא אם ה- Audio Control HAL מיישם דאקינג.
config_oemCarService מוגדר בקובץ התצורה של שירות הרכב, זהו שם הרכיב עבור שירות ההתאמה האישית של OEM. יצרני OEM יכולים לבחור ליישם שירות זה כדי להתאים אישית את פעולות השירות לרכב עבור מדיניות שונה. אם יצרני OEM בוחרים ליישם רכיב זה, עליהם ליישם שירות להרחבת OemCarService שנחשף על ידי car-lib, ולאחר מכן ליישם את שירותי הרכיבים הנדרשים. עבור שירותי אודיו לרכב באופן ספציפי, יצרני OEM יכולים ליישם כל אחד משירותי המשנה של האודיו כדי לנהל את פעולת האודיו. לפרטים, ראה שירות תוסף שמע לרכב . אם שם הרכיב אינו חוקי, CarService לא יתחבר לשום שירות OEM. שם הרכיב לא יכול להיות חבילת צד שלישי. זה חייב להיות מותקן מראש.
audioVolumeAdjustmentContextsVersion

מוגדר בקובץ התצורה של שירות הרכב, תצורה לבחירת הגרסה של רשימת העדיפות של ההקשר של התאמת עוצמת הקול.

גרסה 1 כוללת את כל הקשרי האודיו, בסדר הזה:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

גרסה 2 מוגבלת להקשרים הבאים, בסדר זה.

גרסת ברירת המחדל היא 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState מוגדר בקובץ התצורה של שירות רכב, תצורה למצב השתקה עולמי. כאשר true (ערך ברירת המחדל) אנדרואיד משחזרת את מצב ההשתקה הגלובלי באתחול. כאשר audioUseCarVolumeGroupMuting הוא true , אין לכך השפעה על שינויי השתקה מתמשכים מכיוון ששינויי השתקה מבוססים על קבוצות עוצמת קול בודדות. ערך ברירת המחדל מוגדר כ- true ויש לדרוס אותו כאשר אין להתמיד בהשתקה הראשית עבור מכשיר.
audioVolumeKeyEventTimeoutMs

מוגדר בקובץ התצורה של שירות המכונית, תצורה לציון הזמן הקצוב באלפיות שניות בעוד שקבוצת עוצמת הקול של המכונית נחשבת פעילה לשינויי בקרת עוצמת הקול במהלך אירועי מפתח עוצמת הקול. התצורה משמשת באופן הבא:

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

ערך ברירת המחדל הוא 3000 אלפיות השנייה ויש להתאים אותו על ידי יצרני OEM כדי להתאים את חווית המשתמש.

audioUseCarVolumeGroupEvent מוגדר בקובץ התצורה של שירות הרכב, תצורה לאפשר אירועי התקשרות חזרה לקבוצות נפח. כאשר true , לקוחות מקבלים התקשרות חוזרת דרך ICarVolumeGroupEvent לאירועים המשפיעים על קבוצות נפח. כאשר מופעל:

  • אנו ממליצים בחום לספקים לתמוך גם IAudioControl#setModuleChangeCallback ו- IAudioControl#registerGainCallback עבור אירועים ושינויים בחומרת השמע.
  • כאשר גם CarVolumeCallback וגם CarVolumeGroupEventCallback רשומות על ידי אותה אפליקציה, אינדקס קבוצת עוצמת הקול וההתקשרות ההשתקה של קבוצת נפח יעברו דרך CarVolumeGroupEventCallback בלבד . לכן, אנו ממליצים בחום לכל היישומים לעבור לממשק ההתקשרות חזרה כדי להבטיח ביצועים עקביים.
  • ערך ברירת המחדל הוא false . אנו ממליצים להגדיר זאת כ- true מכיוון שממשקי ה-API לתמיכה בהתקשרות חוזרת בנפח מדור קודם הוצאו משימוש ובקרוב יוסרו לחלוטין.

config_useFixedVolume מוגדר ב- frameworks/base/core/res/res/values/config.xml . חייב להיות מוגדר כ- true כדי לאפשר לשירות אודיו לרכב לנהל את בקרת עוצמת הקול. כאשר הדגל config_useFixedVolume אינו מוגדר, או מוגדר כ- false (ערך ברירת המחדל), אפליקציות יכולות לקרוא לממשקי ה-API של ניהול עוצמת הקול AudioManager ולשנות את עוצמת הקול לפי סוג זרם במיקסר התוכנה. זה עשוי להיות לא רצוי בגלל ההשפעה הפוטנציאלית על אפליקציות אחרות והעובדה שהפחתת עוצמת הקול במיקסר התוכנה יכולה לגרום לפחות ביטים משמעותיים זמינים באות כשהם מתקבלים במגבר החומרה. מכשירים חדשים שלא הוגדרו ואשר מוגדרים true מקבלים שינויים בעוצמת הקול באמצעות ממשקי ה-API של עוצמת הקול וההשתקה AudioManager .
config_handleVolumeKeysInWindowManager המוגדר ב- frameworks/base/core/res/res/values/config.xml , חייב להיות מוגדר כ- true כדי לאפשר לשירות אודיו לרכב ליירט אירועים של מפתח עוצמת הקול. אם מוגדר false (ערך ברירת המחדל) ניתן להעביר אירועי מפתח עוצמת הקול לאפליקציית החזית ועלולים להוביל לתוצאות שליליות מניהול אירועי מפתח עוצמת הקול מחוץ לשירות האודיו לרכב.

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

לפני אנדרואיד 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/ .

RROs שירות רכב

מאז 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 . ב- CarAudioManager#isAudioFeatureEnabled API, הפרמטר המועבר חייב להיות אחד מ:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING