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 |
กำหนดไว้ในไฟล์การกำหนดค่าบริการรถยนต์เพื่อเปิดใช้
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 มีบริบทเสียงทั้งหมดตามลำดับต่อไปนี้
เวอร์ชัน 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 และเปลี่ยนระดับเสียงตามประเภทสตรีมในมิกเซอร์ซอฟต์แวร์ได้ การดำเนินการนี้อาจไม่เป็นที่ต้องการเนื่องจากอาจส่งผลต่อแอปอื่นๆ และการลดทอนระดับเสียงในมิกเซอร์ซอฟต์แวร์อาจทำให้บิตสำคัญที่พร้อมใช้งานในสัญญาณมีจำนวนน้อยลงเมื่อได้รับที่แอมพลิฟายเออร์ฮาร์ดแวร์ อุปกรณ์ใหม่ที่ยังไม่ได้
กำหนดค่าและตั้งค่าเป็น true จะได้รับการเปลี่ยนแปลงระดับเสียง
ผ่าน API ระดับเสียงและการปิดเสียง AudioManager
|
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 เพื่อเปลี่ยนค่าของการกำหนดค่าเสียงของรถยนต์ ตัวอย่างเช่น ดู RRO สำหรับ
การอ้างอิงยานยนต์ 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>
ไฟล์ Manifest การซ้อนทับทรัพยากรที่กำหนดไว้ใน 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