เปิดใช้บริการปลั๊กอิน OEM ใหม่สำหรับรถยนต์ใน Android 14 ส่วนประกอบบางอย่างของรถที่จะกำหนดค่า เพื่อเสียงโดยเฉพาะ มีการนำบริการปลั๊กอินมาใช้ ซึ่งทำให้ OEM กำหนดค่าได้อย่างยืดหยุ่น การจัดการเสียงในอุปกรณ์ AAOS
- การควบคุมโฟกัสเสียง
- การควบคุมระดับเสียงและการปิดเสียง
- การควบคุมการลดเสียง
สถาปัตยกรรมบริการปลั๊กอินสำหรับรถยนต์
รูปภาพด้านล่างแสดงภาพรวมของบริการรถยนต์และความสัมพันธ์ ไปที่บริการรถยนต์ OEM เช่นเดียวกับกระบวนการของแอปและขั้นตอนของบริการรถยนต์ กระบวนการของบริการรถยนต์ OEM ใช้พื้นที่ในการดำเนินการของตนเอง
บริการรถยนต์เริ่มต้นบริการรถยนต์ OEM โดยค้นหาส่วนประกอบที่กำหนดไว้ใน
config_oemCarService
หากไม่มีการกำหนดค่า แปลว่าไม่มีบริการ OEM
และจะไม่มีการเริ่มบริการ คอมโพเนนต์ต้องขยาย
OemCarService
บริการเสียงรถยนต์ต้องเขียนทับ API สำหรับการรับ OEM ระบบเสียงรถยนต์
บริการ:
public final class OemCarServiceImp extends OemCarService {
@Override
public OemCarAudioFocusService getOemAudioFocusService();
@Override
public OemCarAudioDuckingService getOemAudioDuckingService();
@Override
public OemCarAudioVolumeService getOemAudioVolumeService();
}
สำหรับ
ตัวอย่าง โปรดดู
แอปทดสอบข้อมูลอ้างอิงที่กำหนดไว้ใน
packages/services/Car/tests/OemCarServiceTestApp
แม้ว่าบริการจะเริ่มต้นโดยศูนย์บริการรถยนต์ บริการจะไม่ทำโดยอัตโนมัติ
รับช่วงสิทธิ์ที่มีให้สำหรับบริการเครื่องเสียงรถยนต์ ดังนั้น การค้นหาใดๆ
คุณควรได้รับสิทธิ์ที่จำเป็นจากบริการ OEM พร้อมกับ
Google Analytics ตัวอย่างเช่น โปรดดู
packages/services/Car/data/etc/com.android.car.oemcarservice.testapp.xml
บริการเครื่องเสียงรถยนต์ที่มีสถาปัตยกรรมบริการ OEM
ใน AAOS บริการเสียงรถยนต์จะจัดการการดำเนินการต่อไปนี้
- การกำหนดเส้นทางเสียง
- โฟกัสอัตโนมัติ
- การลดเสียง
- ระดับเสียงและปิดเสียง
ก่อน Android 14 ลักษณะการทำงานนี้คงที่เป็นส่วนใหญ่ จะแก้ไขได้ผ่านการตั้งค่าเท่านั้น แม้ว่าจะเป็นเฉพาะบางกรณีเท่านั้น Android 14 เปิดตัวกลไกสำหรับเครื่องเสียงในรถ ในการสื่อสารกับคอมโพเนนต์ที่ OEM กำหนด ซึ่งจะจัดการสิ่งต่อไปนี้
- โฟกัสอัตโนมัติ
- การลดเสียง
- ระดับเสียงและปิดเสียง
ภาพด้านล่างแสดงสถาปัตยกรรมง่ายๆ สำหรับบริการเครื่องเสียงรถยนต์ และ บริการ OEM รถยนต์ บริการเครื่องเสียงรถยนต์กำหนดฮุกต่างๆ ที่เรียกใช้ได้ บริการระบบเสียง OEM ในรถยนต์เพื่อจัดการพฤติกรรมของเสียง รายการหลังเกิดขึ้นเพียง หากมีการกำหนดส่วนประกอบบริการเครื่องเสียงรถยนต์ OEM ที่เกี่ยวข้อง มิเช่นนั้น แอตทริบิวต์ บริการเสียงรถยนต์จะใช้ลักษณะการทำงานเริ่มต้น
เพื่อให้บริการระบบเสียงในรถและบริการระบบเสียง OEM ของรถยนต์ทำงานอยู่เสมอ สำหรับการเรียกแต่ละครั้ง บริการระบบเสียงของรถจะส่งผ่านส่วนที่จำเป็นของ สถานะปัจจุบันของการซ้อนเสียงไปยังบริการเสียง OEM ในรถยนต์ ตัวอย่างเช่น เมื่อ บริการเครื่องเสียงรถยนต์จะสกัดกั้นคำขอเพื่อประเมินโฟกัสของเสียง สถานะปัจจุบันของการกองซ้อนกับบริการเสียง OEM รถยนต์ สถานะปัจจุบัน รวมตัวยึดโฟกัสปัจจุบันและผู้แพ้โฟกัสปัจจุบัน จุดที่ไม่โฟกัสอยู่ที่ คำขอโฟกัสที่ยังคงเป็นส่วนหนึ่งของสแต็ก แต่สูญหายชั่วคราว โฟกัส
บริการเครื่องเสียงในรถต้องจัดการกิจกรรมเสียงทั้งหมดในรถ หากรถยนต์ บริการเสียงไม่ได้จัดการพฤติกรรมบางส่วนของเสียง ข้อมูลที่เปิดเผยต่อบริการเสียง OEM ของรถยนต์นั้นไม่สมบูรณ์ ตัวอย่างเช่น หาก OEM เขียนทับการจัดการโฟกัสเสียงในบริการรถยนต์ด้วยการลงทะเบียน นโยบายโฟกัสเสียงของตนเอง บริการเครื่องเสียงรถยนต์จะไม่สามารถให้ ไปยังบริการระบบเสียงของ OEM รถยนต์ อาจส่งผลต่อความสามารถของรถ บริการเสียง OEM ช่วยตัดสินใจเนื่องจากอาจไม่มีข้อมูลที่แสดงให้เห็น ไปยังบริการระบบเสียงในรถ
บริการเครื่องเสียงรถยนต์จะโทรหาศูนย์บริการรถยนต์จาก OEM การโทรเหล่านี้ เกิดขึ้นข้ามกระบวนการต่างๆ ซึ่งต้องใช้การสื่อสารระหว่างกระบวนการ (IPC) IPC จะเพิ่มเวลาในการตอบสนองให้กับการโทรแต่ละครั้ง สิ่งสำคัญคือการลดเวลาในการตอบสนองในฟิลด์ บริการ OEM
เนื่องจากบริการเสียงรถยนต์ที่โทรหาบริการ OEM บล็อกอยู่ บริการ OEM ไม่ควรเรียกใช้บริการเสียงติดรถยนต์ในการประเมิน API โดยตรง แต่ บริการระบบเสียงติดรถยนต์จะให้ข้อมูลที่จำเป็นเพื่อให้การโทรระหว่าง กระบวนการ 2 อย่างใช้เพียงการเดินทางในทิศทางเดียว
คำจำกัดความของบริการเครื่องเสียงรถยนต์จาก OEM
บริการโฟกัสเครื่องเสียงรถยนต์จาก OEM
บริการเครื่องเสียงรถยนต์จัดการคำขอโฟกัสเสียงจากแอปด้วยการลงทะเบียน ผู้ฟังนโยบายเสียงโดยเฉพาะ บริการเครื่องเสียงรถยนต์มีกลไกในการจัดการ พฤติกรรมการโฟกัสตามแบบคงที่ เมทริกซ์การโต้ตอบ เมทริกซ์จะระบุการโต้ตอบที่แตกต่างกัน 3 ประเภท
การโต้ตอบพร้อมกัน จุดโฟกัสจะคงโฟกัสได้เหมือนเดิม
การโต้ตอบสุดพิเศษ คำขอโฟกัสขาเข้ารับโฟกัสจาก ตัวยึดโฟกัสปัจจุบัน
ปฏิเสธการโต้ตอบ คำขอโฟกัสที่เข้ามาใหม่ถูกปฏิเสธตาม ตัวยึดโฟกัสปัจจุบัน
แม้ว่าวิธีนี้จะเพียงพอสําหรับกรณีการใช้งานด้านยานยนต์บางกรณี แต่ก็ไม่ได้เติมเต็ม
ความต้องการในการโต้ตอบที่อาจแตกต่างกันไปตามข้อกำหนด OEM สำหรับกรณีนี้ เรา
แนะนำ OemCarAudioFocusService
:
public interface OEmCarAudioFocusService {
OemCarAuddioFocusResults evaluateAudioFocusRequest(
OemCarAudioFocusEvaluationRequest request);
void notifyAudioFocusChange(
List<AudioFocusEntry> holder,
List<AudioFocusEntry> losers, int zoneId);
}
เรียก API evaluateAudioFocusRequest
จากบริการเสียงรถยนต์ได้ทุกเมื่อ
มีคำขอสำหรับการโฟกัสเสียงที่ต้องได้รับการประเมิน ซึ่งมีอยู่ 2 แนวทาง
API ที่บล็อกผลการค้นหาที่จะแสดง คำขอมีข้อมูล
เกี่ยวกับสถานะปัจจุบันของสแต็กเสียง:
ข้อมูลนี้สามารถใช้เพื่อประเมิน newFocusRequest
เมื่อเทียบกับ
ผู้ถือโฟกัสปัจจุบันใน focusHolders
และผู้เสียโฟกัสปัจจุบันใน
focusLosers
API ควรแสดงผลลัพธ์ดังนี้
class OemCarAudioFocusResult {
int audioZoneId;
int audioFocusEvaluationResults;
AudioFocusEntry focusResult;
List<AudioFocusEntry> newLosers;
List<AudioFocusEntry> newlyBlocked;
}
ส่วนนี้มีข้อมูลเกี่ยวกับผลการประเมินจริงใน
audioFocusEvaluationResults
ซึ่งระบุว่าคำขอปัจจุบันมี
ได้รับสิทธิ์แล้ว ล่าช้า หรือล้มเหลว การเปลี่ยนแปลงใดๆ ในชุดโฟกัสปัจจุบัน
ควรตั้งค่าในรายการ newLosers
และ newlyBlocked
ทั้งนี้ขึ้นอยู่กับลักษณะ
ของการเปลี่ยนแปลงสแต็ก
โดยที่ newLosers
มีรายการซึ่งก่อนหน้านี้มีโฟกัสอยู่ แต่
ควรสูญเสียโฟกัสไม่ว่าจะถาวรหรือชั่วคราว การสูญเสียโฟกัสถาวร
จะถูกนำออกจากสแต็กโฟกัสเสียงอีก และผู้สูญเสียโฟกัสแบบชั่วคราว
จะย้ายไปยังสแต็ก "แพ้โฟกัส" ปัจจุบันจนกว่าจะกลับมาโฟกัสหรือ
ออกจากผู้ขอโฟกัสเดิม อย่างไรก็ตาม ผู้ฟังที่มีสมาธิสำหรับ
คำขอจะไม่ได้รับการโฟกัสที่เกี่ยวข้อง
รายการ newlyBlocked
มีรายการที่เคยอยู่ในการแพ้โฟกัส
แต่ตอนนี้ถูกบล็อกโดยรายการใหม่ การบล็อกสามารถเป็นแบบถาวรหรือ
ชั่วคราว สำหรับโฟกัสถาวรที่บล็อก รายการจะถูกนำออกจากสแต็ก
และระบบจะส่งโฟกัสไปที่ผู้ฟังที่โฟกัส สำหรับการสูญเสียโฟกัสชั่วคราว
รายการจะยังคงอยู่ในสแต็กของผู้แพ้โฟกัส แต่ตัวบล็อกโฟกัสใหม่จะ
เพิ่มไปยังรายการตัวบล็อกแล้ว ระบบจะไม่ส่งการสูญเสียโฟกัสเหมือนที่เคย
ส่งเมื่อถูกบล็อกครั้งแรก คำขอจะถูกยกเลิกในท้ายที่สุด
ตัวบล็อกปัจจุบันถูกนำออก หรือจะถูกนำออกจากกลุ่มหากโฟกัสอยู่ที่
ยกเลิก
API รายการที่ 2 ซึ่งก็คือ notifyAudioFocusChange
เป็นวิธีเดียวที่จะเรียกใช้ทุกๆ
คำขอโฟกัสเสียงหรือยกเลิก API ใช้เพื่อแจ้งข้อมูลแก่บริการ OEM เป็นส่วนใหญ่
เกี่ยวกับการเปลี่ยนแปลงโฟกัส ซึ่งอาจส่งผลต่อลักษณะการทำงานของบริการระบบเสียงสำหรับรถยนต์ของ OEM
แนวทางสำหรับการประเมินจุดมุ่งเน้น
ใน AAOS โฟกัสเสียงจะใช้เพื่อจัดการการเล่นเสียงและเพื่อกำหนดว่า แอปควรสอดคล้องกับการมอบประสบการณ์ที่ดีที่สุดให้แก่ผู้ใช้ ด้วยเหตุนี้ บริการปลั๊กอิน OEM ควรคำนึงถึงสิ่งต่อไปนี้เมื่อจัดการ คำขอโฟกัสเสียง:
โดยไม่โฟกัสเสียงที่มีลำดับความสำคัญสูง (เช่น การโทร) ฉุกเฉินหรือความปลอดภัย) แอปควรมีโฟกัสเสียงได้ ชั่วคราวหรือถาวร
ขณะที่โฟกัสสื่อทำงานอยู่ แอปจะส่งคำขอดังต่อไปนี้
การใช้งานการโทร ควรรับโฟกัสพร้อมกันได้ หรือโดยเฉพาะ
โฟกัสการใช้งานการนำทาง ควรจะได้รับการโฟกัส พร้อมกันหรือเฉพาะเท่านั้น
โฟกัสการใช้งาน Assistant ควรจะสามารถรับโฟกัสได้ พร้อมกันหรือเฉพาะเท่านั้น
ขณะยืนโฟกัสเสียงที่มีลำดับความสำคัญสูง (เช่น การโทรศัพท์ เหตุฉุกเฉิน การแจ้งเตือน หรือการแจ้งเตือนความปลอดภัย) แอปทำงานอยู่ โฟกัสเสียงที่ล่าช้าที่เข้ามาใหม่ คำขอควรได้รับอนุญาตหรือล่าช้าตามความจำเป็น
แม้ว่าคำแนะนำข้างต้นจะไม่ครอบคลุมทั้งหมด แต่ก็สามารถช่วยรับประกันได้ว่า แอปที่ขอโฟกัสควรจะสามารถรับโฟกัสได้เมื่อไม่มีการใช้งาน เสียงที่มีลำดับความสำคัญสูง แม้ในขณะที่มีเสียงที่มีลำดับความสำคัญสูงอยู่ แต่โฟกัสแบบหน่วงเวลา คำขอควรทำและควรได้รับความสนใจ หยุดเสียงที่มีลำดับความสำคัญสูง
บริการระดับเสียงรถยนต์จาก OEM
บริการเครื่องเสียงรถยนต์จะจัดการเหตุการณ์สําคัญของระดับเสียงโดยการฟังระดับเสียง การปรับจากระบบเสียงหรือโดยการฟังเหตุการณ์สําคัญระดับเสียงโดยตรง จากบริการป้อนข้อมูลในรถ ในแต่ละกรณี ลักษณะการทำงานเริ่มต้นของรถยนต์ บริการเสียงคือการกำหนดกลุ่มระดับเสียงที่จะเปลี่ยนตามการใช้งาน โปรแกรมเล่นเสียงและรายการลำดับความสำคัญของบริบทเสียง
เรามีรายการลำดับความสำคัญสูง 2 รายการ รายการแรกจะพิจารณาเสียงทั้งหมด บริบทตามลำดับนี้ โดยรายการจะแสดงเรียงจากมากไปหาน้อย ลำดับความสำคัญที่ด้านบน และลำดับความสำคัญต่ำสุดอยู่ด้านล่าง ตัวอย่างเช่น หาก เสียงการนำทางและเสียงเพลงก็ทำงานพร้อมกัน ระดับเสียงการนำทางมีการเปลี่ยนแปลงระหว่างเหตุการณ์ปุ่มปรับระดับเสียง
- การไปยังรายการต่างๆ
- โทร
- เพลง
- ประกาศ
- คำสั่งเสียง
- เสียงเรียกเข้า
- เสียงของระบบ
- ความปลอดภัย
- สัญญาณเตือน
- การแจ้งเตือน
- สถานะยานพาหนะ
- ฉุกเฉิน
บริการเครื่องเสียงรถยนต์มีสิ่งต่อไปนี้ เพื่อช่วยให้การจัดการเหตุการณ์ปุ่มปรับระดับเสียงซับซ้อนน้อยลง รายการสำคัญอันดับ 2 ของบริบทเสียง ได้แก่
- โทร
- สื่อ
- ประกาศ
- คำสั่งเสียง
รายการนี้ยังแสดงตามลำดับจากมากไปน้อยอีกด้วย วัตถุประสงค์ของรายการซีคอนนี้ คือช่วยให้สามารถเปลี่ยนเสียงทั่วไป ผ่านเหตุการณ์สําคัญได้ ไม่ปกติ อาจเป็นเสียงที่มีระยะเวลาสั้นกว่า สามารถจัดการได้ผ่านการตั้งค่าเสียง UI เท่านั้น
ตั้งค่าระดับเสียงเวอร์ชันจริงได้ด้วย
การกำหนดค่า audioVolumeAdjustmentContextsVersion
การกำหนดค่าอาจเป็น
ตั้งค่าเป็น 1
หรือ 2
(2
เป็นค่าเริ่มต้น)
หากต้องการความยืดหยุ่นมากขึ้นในการจัดการปริมาณ
OemCarAudioVolumeService
เปิดตัวใน Android 14 ดังนี้
public interface OemCarAudioVolumeService {
OemCarvolumeChangeInfo getSuggestedGroupForVolumeChange(
OemCarAudioVolumeRequest request, int volumeAdjustment);
}
บริการระดับเสียงในรถของ OEM มีวิธีเดียว คือ
volumeAdjustment
และ OemCarAudioVolumeRequest
:
class OemCarAudioVolumeRequest {
int audioZoneId;
int callState;
List<AudioAttributes> activePlaybackAttributes;
List<AudioAttributes> duckedAttributes;
List<CarVolumeGroupInfo> volumeGroupState;
}
activePlaybackAttributes
ของคำขอมีแอตทริบิวต์เสียงที่ใช้งานอยู่
ขณะนี้ duckedAttributes
ทั้งหมดมีแอตทริบิวต์เสียงแบบฝัง
volumeGroupState
มีสถานะปัจจุบันของกลุ่มวอลุ่ม คำขอ
แสดงสถานะปัจจุบันของการซ้อนเสียง และสามารถใช้เพื่อระบุ
ควรเปลี่ยนกลุ่มระดับเสียงใด ผลลัพธ์ควรแสดงผลใน
OemCarVolumeChangeInfo
:
class OemCarVolumeChangeInfo {
boolean change;
CarVolumeGroupInfo volumeGroupChanged;
}
บูลีน change
จะระบุว่าปริมาณมีการเปลี่ยนแปลงหรือไม่ true
บ่งชี้ว่า
มีการเปลี่ยนแปลงและควรอัปเดตกลุ่มระดับเสียง
volumeGroupChanged
คือกลุ่มระดับเสียงจริงที่ควรเปลี่ยน ช่วงเวลานี้
ควรเปลี่ยนตามพารามิเตอร์ volumeAdjustment
เดิม
ที่ส่งไปยัง API ตัวอย่างเช่น หากผลลัพธ์ระบุว่าการนำทาง
ควรปิดเสียงกลุ่มระดับเสียง บูลีนจะเป็น true
และรายการที่แสดงผล
กลุ่มระดับเสียงควรเป็นกลุ่มนั้นสำหรับการนำทาง
บริการดักดูรถของ OEM
บริการเครื่องเสียงรถยนต์จัดการการลดเสียงโดยตรวจสอบการเปลี่ยนแปลงโฟกัสของเสียงและ
กำลังส่งสัญญาณไปยัง HAL AudioControl
เกี่ยวกับอุปกรณ์เสียงที่จะนำมาใช้
เมื่อเปลี่ยนโฟกัส ระบบจะประเมินตัวยึดตำแหน่งที่ใช้งานอยู่ทั้งหมดเพื่อระบุ
ซึ่งควรจะค่อยๆ เลือนตามชุดของการลดแบบคงที่นี้
กฎดังนี้
- เสียงฉุกเฉินเป็นเป็ดทุกอย่างยกเว้นเสียงโทร
- ความปลอดภัยลดทุกอย่างยกเว้นเสียงฉุกเฉิน
- การนำทางเป็นทุกอย่างยกเว้นเสียงเพื่อความปลอดภัยและเสียงฉุกเฉิน
- โทรหาเป็ดทุกอย่างยกเว้นเสียงความปลอดภัย เหตุฉุกเฉิน และเสียงนำทาง
- เสียงสายเรียกเข้าเป็ด
- เพลงและประกาศควรย่อมาจากทุกสิ่ง
กฎเหล่านี้ไม่ได้ครอบคลุมทั้งหมดและ OEM ยังคงเป็นผู้รับผิดชอบในการกำหนด
ควรลดเสียงตามหลักเกณฑ์เหล่านี้อย่างไร OEM สามารถควบคุม
คำแนะนำอย่างเข้มงวดมากขึ้นตามข้อกำหนดที่มีให้
OemCarDuckingService
เปิดตัวใน Android 14 ดังนี้
class OemCarAudioDuckingService {
List<AudioAttributes> evaluateAttributesToDuck(
OemCarAudioVolumeRequest request);
}
เรียก API นี้จากบริการเสียงรถยนต์เมื่อมีการเปลี่ยนแปลงการโฟกัสเสียง นำกลับมาใช้ซ้ำ
OemCarAudioVolumeRequest
ที่แนะนำใน
บริการปริมาณรถยนต์ของ OEM และมี
เพื่อประกอบการตัดสินใจเกี่ยวกับแอตทริบิวต์ที่จะนำมาใช้ รายการ
แอตทริบิวต์เสียงที่จะ Duck จาก API ถูกเปรียบเทียบกับสถานะเสียงปัจจุบัน:
แอตทริบิวต์เสียงที่ถูกตัดออกในปัจจุบัน:
- ในรายการ เรายังคงเป็น Duck อยู่
- ไม่อยู่ในรายการ ปิดการลดเสียง
ไม่ได้ตัดแอตทริบิวต์เสียงในขณะนี้:
- อยู่ในรายการ เป็ด
- ไม่อยู่ในรายการ ปิดการลดเสียง
บริการเสียงในรถยนต์จะกำหนดเสียงของอุปกรณ์เอาต์พุตเสียง เป็นของและเพิ่มแอตทริบิวต์ดังกล่าวลงในรายการอุปกรณ์เอาต์พุตเสียง หรือ ไม่มีรายการอุปกรณ์เสียงตามลำดับ ซึ่งท้ายที่สุดแล้วจะถูกส่งไปยัง AudioControl HAL เพื่อดำเนินการ ที่จำเป็นในระดับฮาร์ดแวร์
ภาพด้านล่างแสดงแผนภาพลำดับการลดเสียงแบบง่าย การควบคุมสำหรับคำขอโฟกัสเมื่อใช้บริการการลด OEM
ลำดับจะเริ่มต้นเมื่อแอปขอ
จัดการโฟกัสเสียง
ผ่าน API โปรแกรมจัดการเสียงสาธารณะ ส่งต่อคำขอไปยังเครื่องเสียงในรถแล้ว
บริการเพื่อพิจารณาผลลัพธ์ เมื่อเลือกโฟกัสเสียงได้ การลดเสียง
ประเมินโดยบริการเสียงรถยนต์ที่เรียก OemCarAudioDuckingService
ไปยัง
ประเมินว่าควรตัดแอตทริบิวต์เสียงใด เมื่อมีการแสดงผลลัพธ์กลับมา
จาก evaluateAttributesToDuck
API ระบบจะคำนวณอุปกรณ์เสียงจนถึง Duck
และสุดท้ายก็ส่งข้อมูลไปยัง AudioControl
เพื่อใช้การลดปัญหา
ฮาร์ดแวร์เสียง
การใช้ข้อมูลอ้างอิงบริการเครื่องเสียงรถยนต์ของ OEM
AAOS นำเสนอการใช้ข้อมูลอ้างอิงของบริการรถยนต์ OEM ใน
packages/services/Car/tests/OemCarServiceTestApp
ซึ่งใช้
OemCarService
พร้อมด้วย OemCarAudioFocusService
OemCarAudioDuckingService
และ OemCarAudioVolumeService
อย่างหลัง
แต่ละบริการใช้และไฟล์ XML เพื่อโหลดลักษณะการทำงานแบบคงที่ ตัวอย่างเช่น
OemCarAudioFocusServiceImp
จะโหลด oem_focus_config.xml
มีเมทริกซ์การโต้ตอบ ใช้เมทริกซ์เพื่อประเมินคำขอโฟกัส
เมื่อมีการเรียก evaluateAudioFocusRequest
ข้อมูลอ้างอิงการแก้ไขข้อบกพร่องของแอปทดสอบ
แอปทดสอบบริการรถยนต์ OEM เป็นส่วนหนึ่งของซอร์สโค้ด AOSP OEM สามารถ
เปลี่ยนแปลงไปตามความต้องการ สำหรับการแก้ไขข้อบกพร่อง ให้ใช้ config_oemCarService
การกำหนดค่าเพื่อเปิดใช้แอปทดสอบ
<!-- This is the component name for the OEM customization service. OEM can choose to implement
this service to customize car service behavior for different policies. If OEMs choose to
implement it, they have to implement a service extending OemCarService exposed by car-lib,
and implement the required component services.
If the component name is invalid, CarService would not connect to any OEM service.
Component name can not be a third party package. It should be pre-installed -->
<string name="config_oemCarService" translatable="false">
com.android.car.oemcarservice.testapp/.OemCarServiceImpl
</string>
ในการยืนยันบริการ OEM รถยนต์ ใช้คำสั่ง dump
ของบริการรถยนต์สำหรับ
บริการ OEM:
adb shell dumpsys car_service --oem-service
ผลลัพธ์อาจคล้ายกับผลลัพธ์ด้านล่าง
***CarOemProxyService dump***
mIsFeatureEnabled: true
mIsOemServiceBound: true
mIsOemServiceReady: true
mIsOemServiceConnected: true
mInitComplete: true
OEM_CAR_SERVICE_CONNECTED_TIMEOUT_MS: 5000
OEM_CAR_SERVICE_READY_TIMEOUT_MS: 5000
mComponentName: com.android.car.oemcarservice.testapp/.OemCarServiceImpl
บูลีนแต่ละบูลีนในข้อมูล dump
แต่ละกลุ่มจะระบุสถานะของฟีเจอร์
และบริการ ตัวอย่างเช่น ข้อมูลดัมพ์ mIsOemServiceReady
จะระบุว่า
บริการพร้อมใช้งานแล้ว โดยที่ true
ระบุว่าบริการพร้อมใช้งานแล้วและ false
แสดงว่ายังไม่พร้อมใช้งาน