Android 14 में कार के लिए OEM प्लगिन की नई सेवाएं चालू की गईं कार के कुछ कॉम्पोनेंट को कॉन्फ़िगर करना होगा. विशेष रूप से ऑडियो के लिए, तीन नए प्लगिन सेवाएं शुरू की गईं, जो OEM को ज़रूरत के हिसाब से कॉन्फ़िगर करने में मदद करती हैं AAOS डिवाइसों पर ऑडियो मैनेजमेंट:
- ऑडियो फ़ोकस कंट्रोल
- ऑडियो वॉल्यूम और म्यूट कंट्रोल
- ऑडियो डकिंग कंट्रोल
कार प्लगिन सर्विस आर्किटेक्चर
यहां दिए गए डायग्राम में, कार की सेवाओं और उनके बीच के संबंध के बारे में खास जानकारी दी गई है को OEM कार सेवा के लिए जाना जा सकता है. ऐप्लिकेशन की प्रोसेस और कार सर्विस की प्रोसेस की तरह, OEM कार सर्विस की प्रोसेस, खुद की प्रोसेस के लिए जगह लेती है.
कार सेवा, इसमें बताए गए कॉम्पोनेंट को ढूंढकर, OEM कार सेवा शुरू करती है
config_oemCarService
. अगर कॉन्फ़िगरेशन खाली है, तो OEM सेवा मौजूद नहीं है
और कोई सेवा शुरू नहीं हुई है. कॉम्पोनेंट को बढ़ाना ज़रूरी है
OemCarService.
कार की ऑडियो सेवा को कार का ऑडियो OEM पाने के लिए, एपीआई को ओवरराइट करना होगा
सेवा:
public final class OemCarServiceImp extends OemCarService {
@Override
public OemCarAudioFocusService getOemAudioFocusService();
@Override
public OemCarAudioDuckingService getOemAudioDuckingService();
@Override
public OemCarAudioVolumeService getOemAudioVolumeService();
}
इसके लिए
उदाहरण, देखें
में परिभाषित संदर्भ परीक्षण ऐप
packages/services/Car/tests/OemCarServiceTestApp
.
सेवा को कार सर्विस से चालू करने पर भी, वह अपने-आप नहीं होती
कार की ऑडियो सर्विस के लिए उपलब्ध अनुमतियां लागू होती हैं. इसलिए, कोई भी
ओईएम सेवाओं के लिए आवश्यक अनुमति, उचित
मैकेनिज़्म. उदाहरण के लिए, देखें
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 कार सेवाओं को कॉल करती है. ये कॉल ये अलग-अलग प्रोसेस के दौरान की जाती हैं. इसके लिए इंटर-प्रोसेस कम्यूनिकेशन (आईपीसी) की ज़रूरत होती है. आईपीसी इससे हर कॉल में देरी होती है. यह ज़रूरी है कि OEM सेवा.
OEM सेवा को कार ऑडियो सेवा की कॉल ब्लॉक की जा रही हैं. इसलिए, OEM सेवा को डायरेक्ट एपीआई आकलन पर कार ऑडियो सेवा को कॉल नहीं करना चाहिए. इसके बजाय, कार ऑडियो सेवा आवश्यक जानकारी देती है ताकि दो प्रक्रियाओं के लिए सिर्फ़ एक दिशा में यात्रा करने की ज़रूरत होती है.
OEM कार ऑडियो सेवा की परिभाषाएं
OEM कार ऑडियो फ़ोकस सेवा
कार में ऑडियो की सेवा, रजिस्टर करके ऐप्लिकेशन के ऑडियो फ़ोकस के अनुरोधों को मैनेज करती है ऑडियो नीति फ़ोकस लिसनर. कार ऑडियो सेवा में, आपकी फ़ोकस का व्यवहार एक स्टैटिक इंटरैक्शन मैट्रिक्स. मैट्रिक्स तीन अलग-अलग तरह के इंटरैक्शन को परिभाषित करता है:
एक साथ बातचीत. फ़ोकस होल्डर, फ़ोकस को साथ में बनाए रख सकते हैं समय.
खास इंटरैक्शन. फ़ोकस करने के लिए मिलने वाले अनुरोध पर, मौजूदा फ़ोकस होल्डर.
इंटरैक्शन को अस्वीकार करना. इन वजहों से फ़ोकस करने का अनुरोध अस्वीकार किया गया फ़ोकस होल्डर.
यह सुविधा, वाहन संबंधित कुछ मामलों में तो काम करती है. हालांकि, इससे सभी ज़रूरी शर्तें पूरी नहीं होती हैं
इंटरैक्शन की ज़रूरतें, जो OEM की शर्तों की वजह से अलग हो सकती हैं. इसके लिए हम
OemCarAudioFocusService
के बारे में बताएं:
public interface OEmCarAudioFocusService {
OemCarAuddioFocusResults evaluateAudioFocusRequest(
OemCarAudioFocusEvaluationRequest request);
void notifyAudioFocusChange(
List<AudioFocusEntry> holder,
List<AudioFocusEntry> losers, int zoneId);
}
कार ऑडियो सेवा से किसी भी समय एपीआई evaluateAudioFocusRequest
को कॉल किया जाता है
ऑडियो फ़ोकस के लिए एक अनुरोध है, जिसका आकलन करना है. यह दो तरीकों से
ऐसा एपीआई जो नतीजों को दिखाने से रोकता है. अनुरोध में जानकारी शामिल है
ऑडियो स्टैक की मौजूदा स्थिति के बारे में जानकारी:
इस जानकारी का इस्तेमाल, आपकी तुलना में newFocusRequest
का आकलन करने के लिए किया जा सकता है
focusHolders
में फ़ोकस रखने वाले मौजूदा लोग और फ़ोकस हारने वाले मौजूदा लोग
focusLosers
. एपीआई से नतीजे मिलने चाहिए:
class OemCarAudioFocusResult {
int audioZoneId;
int audioFocusEvaluationResults;
AudioFocusEntry focusResult;
List<AudioFocusEntry> newLosers;
List<AudioFocusEntry> newlyBlocked;
}
इसमें वास्तविक मूल्यांकन के नतीजों के बारे में जानकारी होती है, जो
audioFocusEvaluationResults
. इससे पता चलता है कि मौजूदा अनुरोध में
को स्वीकार नहीं किया गया है, उसमें देरी हुई है या वह नहीं हो पाया है. मौजूदा फ़ोकस स्टैक में किए गए किसी भी तरह के बदलाव
प्रकृति के आधार पर newLosers
और newlyBlocked
एंट्री में सेट होना चाहिए
की एक झलक दिखेगी.
जहां newLosers
में ऐसी एंट्री हैं जिन पर पहले फ़ोकस था, लेकिन
अब फ़ोकस हमेशा के लिए या कुछ समय के लिए बंद हो जाना चाहिए. परमानेंट फ़ोकस खोने वाले लोग
ऑडियो फ़ोकस स्टैक से और कुछ समय के लिए काम न करने वाले फ़ोकस को हटा दिया जाएगा
को मौजूदा फ़ोकस खोने वाले लोगों के स्टैक में तब तक ले जाया जाएगा, जब तक कि वे फिर से फ़ोकस नहीं कर लेते या
जिसे मूल फ़ोकस अनुरोधकर्ता से छोड़ा गया था. भले ही, फ़ोकस लिसनर
अनुरोधों का संबंधित फ़ोकस खो जाएगा.
newlyBlocked
सूची में ऐसी एंट्री शामिल हैं जो फ़ोकस लूज़र में पहले शामिल थीं
सूची में मौजूद हैं, लेकिन अब उसे नई एंट्री से ब्लॉक कर दिया गया है. रोक स्थायी हो सकती है या
कुछ समय के लिए, स्थायी फ़ोकस के लिए ब्लॉक करने पर एंट्री को स्टैक से हटा दिया जाएगा
फ़ोकस लॉस का डेटा, फ़ोकस लिसनर को भेजा जाएगा. कुछ समय के लिए फ़ोकस लॉस के लिए,
फ़ोकस लूज़र्स स्टैक में एंट्री रहेगी. हालांकि, एक नया फ़ोकस ब्लॉकर
इसे ब्लॉकर की सूची में जोड़ा गया है. इसलिए, फ़ोकस लॉस को पहले वाली स्थिति में नहीं भेजा जाएगा
भेजा जाता है जब इसे पहली बार ब्लॉक किया गया था. आखिर में, सभी मामलों में अनुरोध अनब्लॉक कर दिया जाएगा
मौजूदा ब्लॉकर हटा दिए जाते हैं. अगर फ़ोकस रहेगा, तो स्टैक से भी उसे हटा दिया जाएगा
छोड़ दिए.
दूसरा एपीआई, notifyAudioFocusChange
, एक ऐसा तरीका है जिसे हर
ऑडियो फ़ोकस का अनुरोध करना या उसे छोड़ देना. एपीआई का इस्तेमाल ज़्यादातर, OEM सेवा को जानकारी देने के लिए किया जाता है
फ़ोकस में होने वाले बदलावों के बारे में. इससे OEM कार की ऑडियो सेवा के काम करने के तरीके पर असर पड़ सकता है.
फ़ोकस इवैलुएशन के लिए दिशा-निर्देश
AAOS में, ऑडियो फ़ोकस का इस्तेमाल, ऑडियो प्लेबैक को मैनेज करने और यह तय करने के लिए किया जाता है कि उपयोगकर्ता को बेहतर अनुभव देने के लिए ऐप्लिकेशन का पालन किया जाना चाहिए. इसलिए, को मैनेज करते समय OEM प्लगिन सेवा को इन बातों का ध्यान रखना चाहिए: ऑडियो फ़ोकस का अनुरोध:
किसी भी तरह के हाई प्राथमिकता ऑडियो फ़ोकस (जैसे कि फ़ोन कॉल, ऐप्लिकेशन के पास ऑडियो फ़ोकस की सुविधा होनी चाहिए कुछ समय के लिए या हमेशा के लिए.
मीडिया फ़ोकस के चालू होने पर, ऐप्लिकेशन ये अनुरोध करते हैं:
कॉल के इस्तेमाल पर फ़ोकस, दोनों पर फ़ोकस एक साथ मिलना चाहिए या खास तौर पर.
नेविगेशन के इस्तेमाल पर फ़ोकस, दोनों पर फ़ोकस पाने की सुविधा होनी चाहिए एक साथ या खास तौर पर.
Assistant के इस्तेमाल से जुड़ा फ़ोकस, उसे इनमें से किसी एक पर फ़ोकस मिलना चाहिए एक साथ या खास तौर पर.
हाई प्राथमिकता वाले ऑडियो फ़ोकस (जैसे, फ़ोन कॉल, आपातकालीन स्थिति में) होने पर चेतावनी या सुरक्षा से जुड़ी चेतावनी वाले ऐप्लिकेशन चालू हैं या कोई भी ऑडियो फ़ोकस देर से आ रहा है आपके अनुरोध को स्वीकार किया जाना चाहिए या उसे ज़रूरत के हिसाब से देरी से स्वीकार किया जाना चाहिए.
हालांकि, ऊपर दिए गए सुझाव पूरी तरह से शामिल नहीं हैं, लेकिन इनसे यह गारंटी मिल सकती है कि फ़ोकस का अनुरोध करने वाले ऐप्लिकेशन, किसी भी ऐप्लिकेशन के चालू न होने पर भी फ़ोकस पा सकेंगे सबसे ज़्यादा प्राथमिकता वाली आवाज़ें शामिल करें. ज़्यादा प्राथमिकता वाली आवाज़ों के चालू होने पर भी, फ़ोकस देरी से होता है अनुरोधों को अब भी स्वीकार किया जाना चाहिए और हाई प्राथमिकता साउंड बंद हो जाता है.
OEM कार वॉल्यूम सर्विस
कार की ऑडियो सेवा, वॉल्यूम को सुनकर मुख्य इवेंट को मैनेज करती है ऑडियो सिस्टम से होने वाले बदलाव या वॉल्यूम के मुख्य इवेंट को सीधे सुनकर को भी इनपुट की जा सकती है. हर मामले में, कार का डिफ़ॉल्ट व्यवहार ऑडियो सेवा यह तय करती है कि ऐक्टिव ट्रैफ़िक के आधार पर किस वॉल्यूम ग्रुप में बदलाव किया जाए ऑडियो प्लेयर और ऑडियो संदर्भ प्राथमिकता सूची की ज़रूरत होती है.
हम दो वॉल्यूम प्राथमिकता सूचियां उपलब्ध कराते हैं. पहली सूची में सभी ऑडियो शामिल किए जाते हैं संदर्भ ध्यान में रखें. सूची को घटते क्रम में दिखाया जाता है, सबसे ऊपर प्राथमिकता सबसे ऊपर और सबसे नीचे वाली प्राथमिकता को सबसे नीचे रखें. उदाहरण के लिए, अगर नेविगेशन ऑडियो और संगीत ऑडियो, दोनों एक साथ चालू रहते हों, तो किसी मुख्य इवेंट के दौरान, नेविगेशन वॉल्यूम में बदलाव होता है.
- नेविगेशन
- कॉल करें
- संगीत
- घोषणा
- बोला गया निर्देश
- कॉल रिंग
- सिस्टम ध्वनि
- सुरक्षा
- अलार्म
- सूचना
- वाहन की स्थिति
- आपातकालीन कॉल
कार की ऑडियो सेवा की मदद से, वॉल्यूम वाले बटन के इवेंट को मैनेज करना आसान नहीं है ऑडियो कॉन्टेक्स्ट की दूसरी प्राथमिकता सूची:
- कॉल करें
- मीडिया
- घोषणा
- बोला गया निर्देश
इस सूची को घटते क्रम में भी दिखाया जाता है. इस सेकंड सूची का मकसद मुख्य इवेंट के ज़रिए, आम तौर पर इस्तेमाल होने वाली आवाज़ों को बदलने की अनुमति दी जाती है. असामान्य, कम अवधि की आवाज़ें शामिल हो सकती हैं. इन्हें ऑडियो सेटिंग से मैनेज किया जा सकता है सिर्फ़ यूज़र इंटरफ़ेस (यूआई) के लिए.
वॉल्यूम के असल वर्शन को
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
पैरामीटर के मुताबिक बदला जाना चाहिए
एपीआई को भेजा गया. उदाहरण के लिए, अगर परिणामों से पता चलता है कि नेविगेशन
वॉल्यूम ग्रुप को म्यूट किया जाना चाहिए. इसके बाद, बूलियन का तौर पर true
होगा और फिर
नेविगेशन के लिए वॉल्यूम ग्रुप ही होना चाहिए.
OEM कार डकिंग सेवा
कार की ऑडियो सेवा, ऑडियो फ़ोकस में होने वाले बदलावों को मॉनिटर करके और ऑडियो डकिंग को मैनेज करती है
AudioControl
एचएएल को सिग्नल भेज रहा है कि कौनसे ऑडियो डिवाइस डक करने हैं.
फ़ोकस बदलने पर, सभी सक्रिय फ़ोकस धारकों का आकलन किया जाता है, ताकि यह तय किया जा सके कि
जिसे स्टैटिक डकिंग के इस सेट के आधार पर डक किया जाना चाहिए
नियम:
- आपातकालीन स्थितियों की आवाज़ों में, कॉल की आवाज़ों के अलावा सब कुछ नहीं दिखता
- सुरक्षा सुविधाओं में आपातकालीन स्थितियों वाली आवाज़ों के अलावा सब कुछ उपलब्ध है
- नेविगेशन में आपातकालीन स्थितियों और सुरक्षा से जुड़ी आवाज़ों के अलावा, सब कुछ बंद हो जाता है
- कॉल में सुरक्षा, आपातकालीन स्थिति, और नेविगेशन की आवाज़ों के अलावा, हर तरह की आवाज़ बंद हो सकती है
- वॉइस डक की आवाज़ आने पर घंटी बजने की आवाज़
- संगीत और घोषणाएं सभी पर लागू नहीं होनी चाहिए
ये सभी नियम नहीं हैं और तय करने की ज़िम्मेदारी OEM की है
इन दिशा-निर्देशों के हिसाब से आवाज़ को किस तरह कम किया जाना चाहिए. OEM इन्हें कंट्रोल कर सकते हैं
और सुझावों को लागू किया जा सकता है. कॉन्टेंट बनाने
OemCarDuckingService
को Android 14 में लॉन्च किया गया है:
class OemCarAudioDuckingService {
List<AudioAttributes> evaluateAttributesToDuck(
OemCarAudioVolumeRequest request);
}
ऑडियो फ़ोकस में बदलाव करने पर, यह एपीआई कार की ऑडियो सेवा से कॉल किया जाता है. यह टूल, दोबारा इस्तेमाल किया जा सकता है
OemCarAudioVolumeRequest
को इसमें पेश किया गया
OEM कार वॉल्यूम सर्विस और इससे जुड़ी काम की जानकारी
डक करने के लिए एट्रिब्यूट के बारे में फ़ैसला लेने के लिए जानकारी. इसकी सूची
एपीआई की मदद से डक करने के लिए ऑडियो एट्रिब्यूट की तुलना, मौजूदा ऑडियो से की जाती है:
ऑडियो एट्रिब्यूट अभी डक है:
- सूची में शामिल है, लेकिन डक होने वाला है
- सूची में नहीं है, डकिंग बंद की गई है
ऑडियो एट्रिब्यूट अभी डक नहीं किया गया है:
- सूची में, डक किया गया
- सूची में नहीं है, डकिंग बंद की गई है
इसके बाद, कार की ऑडियो सेवा यह पता लगाती है कि किस ऑडियो को एट्रिब्यूट संबंधित हैं और उन्हें डक किए गए ऑडियो आउटपुट डिवाइस सूची में जोड़ता है या बिना छूट वाले ऑडियो डिवाइसों की सूची. आखिर में इसे कार्रवाई करने के लिए AudioControl HAL का इस्तेमाल करें हार्डवेयर लेवल पर डकिंग की ज़रूरत होती है.
नीचे दिए गए डायग्राम में, ऑडियो डकिंग का आसान क्रम वाला डायग्राम दिखाया गया है OEM डकिंग सेवा का इस्तेमाल करते समय, फ़ोकस रिक्वेस्ट के लिए कंट्रोल:
किसी ऐप्लिकेशन के अनुरोध करने पर, क्रम शुरू हो जाता है
ऑडियो फ़ोकस को मैनेज करना
सार्वजनिक ऑडियो मैनेजर API के ज़रिए. अनुरोध को कार के ऑडियो पर भेजा गया है
सेवा का इस्तेमाल करते हैं. जब ऑडियो फ़ोकस तय हो जाता है, तब ऑडियो डकिंग
कार की ऑडियो सेवा, OemCarAudioDuckingService
को कॉल करती है
यह तय करें कि किन ऑडियो एट्रिब्यूट को डक किया जाना चाहिए. नतीजे वापस आने के बाद
evaluateAttributesToDuck
एपीआई से, डक तक के ऑडियो डिवाइसों का हिसाब लगाया जाता है.
और आखिर में डकिंग लागू करने के लिए, 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
यह बताता है कि यह तैयार नहीं है.