Android Automotive OS (AAOS) 使用旗標和設定啟用不同功能,從動態路徑規劃到更通用的功能旗標,例如透過車輛服務控制音量。如要瞭解音訊管理目前的 AAOS 設定旗標,請參閱本文。
| 檢舉 | 目的 | 
|---|---|
| audioUseDynamicRouting | 在車輛服務設定檔中定義,以啟用 AAOS 路線規劃。設定必須設為 true。當false時,CarAudioService和大部分的路由都會停用,OS 會回復為「設定音訊政策」一文所述的預設行為。 | 
| useCoreAudioRouting | 在車輛服務設定檔中定義,啟用 AAOS 核心音訊路徑管理。如果值設為 true,車輛音訊服務會使用可設定音訊政策引擎設定的設定定義。如果值設為false,路由管理會改用車輛音訊服務動態音訊政策組合定義,如使用audioUseDynamicRouting設定。 | 
| useCoreAudioVolume | 在車輛服務設定檔中定義,以啟用 AAOS 核心音量管理。如果值設為 true,車輛音訊服務會使用可設定的音訊政策引擎設定的音量群組定義。如果值設為false,音量管理就會改用車輛音訊服務的預設音量群組定義,並使用audioUseDynamicRouting進行設定。 | 
| audioUseCarVolumeGroupMuting | 在車輛服務設定檔中定義,可啟用個別音量群組的靜音功能。如果設為 false(預設值),系統就會停用個別音量群組的靜音功能。而是會切換為靜音模式。
    設為true時,系統會啟用車輛音量群組靜音功能,且每個音量群組都可以個別設為靜音。當true時,必須在 Audio Control HAL 中實作音量群組靜音功能。 | 
| audioUseHalDuckingSignals | 在車輛服務設定檔中定義,可讓 IAudioControl#onDevicesToDuckChangeAPI 在需要時通知 HAL 進入休眠狀態。如果設為true(預設值),API 會收到信號,指出要迴避的輸出裝置,以及哪些用途會保留焦點。當false時,不會呼叫 API。除非 Audio Control HAL 實作了迴避功能,否則不會呼叫 API。 | 
| config_oemCarService | 這是 OEM 自訂服務的元件名稱,定義於車輛服務設定檔中。原始設備製造商可以選擇實作這項服務,為不同政策自訂車輛服務動作。如果原始設備製造商 (OEM) 選擇實作這個元件,就必須實作服務來擴充車輛程式庫公開的 OemCarService,然後實作必要的元件服務。就車輛音訊服務而言,原始設備製造商可以實作任何音訊子服務,藉此管理音訊動作。詳情請參閱「車輛音訊外掛程式服務」。如果元件名稱無效,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(預設值),應用程式可以呼叫AudioManager音量管理 API,並在軟體混音器中依串流類型變更音量。這可能會對其他應用程式造成影響,而且軟體混音器中的音量衰減可能會導致訊號在硬體放大器接收時,可用的有效位元較少,因此可能不盡理想。尚未設定的新裝置,且已設為透過AudioManager音量和靜音 API 接收音量變更。true | 
| config_handleVolumeKeysInWindowManager | 在 frameworks/base/core/res/res/values/config.xml中定義,必須設為true,車輛音訊服務才能攔截音量鍵事件。如果設為false(預設值),音量鍵事件可以轉送至前景應用程式,並可能導致車輛音訊服務外部的音量鍵事件管理產生不良結果。 | 
| audioUseMinMaxActivationVolume | 在車輛服務設定檔中定義,以啟用最低和最高啟用音量。當 true時,音量增益指數可能會因音量啟動管理下限和上限而調整。如果為false(預設值),則啟用量下限和上限不會生效。 | 
| audioUseFadeManagerConfiguration | 在車輛服務設定檔中定義,可啟用
    系統強制執行的音訊焦點遺失行為。當 true時,車輛音訊架構會剖析車輛音訊淡出設定定義,並在傳送音訊焦點遺失時套用相應的FadeManagerConfiguration。如果值為false(預設值),系統不會在應用程式失去音訊焦點時強制執行淡出行為。 | 
車輛音訊服務設定
在 Android 13 之前,車輛服務設定會遭到 packages/services/Car/service/res/values/config.xml 檔案的產品設定疊加層覆寫 (如要瞭解詳情,請參閱「使用資源疊加層自訂建構作業」)。
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
從 <path_to_overlay> 到實際位置的設定檔位置應包含 packages/services/Car/service/res/values/。
汽車維修服務 RRO
自 Android 13 起,AAOS 支援執行階段資源疊加。使用 RRO 變更車輛音訊設定的值。舉例來說,請參閱中的汽車 cuttlefish 參考資料 RRO。device/google/cuttlefish/shared/auto/rro_overlay/audioUseDynamicRouting 中的 device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml 會覆寫 audioUseDynamicRouting 設定。
<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