कार के ऑडियो सिस्टम का कॉन्फ़िगरेशन

Android 10 में, car_audio_configuration.xml ने car_volumes_groups.xml और IAudioControl.getBusForContext की जगह ले ली है. ऑडियो नीति वाली फ़ाइलें, आम तौर पर वेंडर सेक्शन में होती हैं. इनसे बोर्ड के ऑडियो हार्डवेयर कॉन्फ़िगरेशन के बारे में पता चलता है. car_audio_configuration.xml में रेफ़र किए गए सभी डिवाइसों को audio_policy_configuration.xml में तय किया जाना चाहिए.

पहली इमेज में, कार ऑडियो सेवा के आर्किटेक्चर के बारे में खास जानकारी दी गई है. इसमें, कार ऑडियो सेवा, डिवाइस के लिए ऑडियो सेट अप करने के लिए, कार ऑडियो कॉन्फ़िगरेशन फ़ाइल को पढ़ती है.

कार के ऑडियो आर्किटेक्चर की खास जानकारी

पहली इमेज. कार के ऑडियो आर्किटेक्चर की खास जानकारी.

कार ऑडियो कॉन्फ़िगरेशन फ़ाइल को डिवाइस पर vendor/etc/ या system/etc/ में डालें. vendor/etc/, वह जगह है जहां कार ऑडियो सेवा, फ़ाइल को सबसे पहले खोजती है. कार की ऑडियो सेवाएं, ऑडियो कॉन्फ़िगरेशन तय करने के लिए car_audio_configuration.xml को पढ़ती हैं.

कार के ऑडियो ज़ोन:

  • हर ऑडियो ज़ोन का एक यूनीक ऑडियो ज़ोन आईडी होता है.
  • हर ऑडियो ज़ोन को, कार में मौजूद लोगों के ज़ोन से मैप किया जा सकता है.
  • हर ज़ोन में ऑडियो से जुड़ी कार्रवाइयां, एक-दूसरे से अलग होती हैं:

    • ऑडियो फ़ोकस
    • ऑडियो रूटिंग
    • ऑडियो डकिंग
  • कार के वॉल्यूम ग्रुप:

    • वॉल्यूम ग्रुप वाले सभी ऑडियो डिवाइसों को एक साथ कंट्रोल किया जाता है. इसके लिए, वॉल्यूम में एक ही तरह के बदलाव किए जाते हैं. किसी ग्रुप में मौजूद सभी डिवाइसों के लिए ऑडियो गेन कॉन्फ़िगरेशन एक जैसा होना चाहिए.

    • ऑडियो कॉन्टेक्स्ट को ऑडियो डिवाइसों के हिसाब से मैप करना. इसका इस्तेमाल करके, ऑडियो मिक्स बनाएं. यह मिक्स, ऑडियो के इस्तेमाल को आउटपुट डिवाइस पर मैप करता है.

    • सभी ऑडियो कॉन्टेक्स्ट को एक ज़ोन में दिखाया जाना चाहिए. इससे, ऑडियो एट्रिब्यूट के सभी इस्तेमाल के लिए, ऑडियो रूटिंग को सही तरीके से सेट अप किया जा सकता है.

ऑडियो कॉन्टेक्स्ट

AAOS ऑडियो के कॉन्फ़िगरेशन को आसान बनाने के लिए, मिलते-जुलते इस्तेमाल को CarAudioContexts में ग्रुप किया गया है. इन ऑडियो कॉन्टेक्स्ट का इस्तेमाल, CarAudioService में राउटिंग, वॉल्यूम ग्रुप, ऑडियो फ़ोकस, और डकिंग मैनेजमेंट तय करने के लिए किया जाता है. AAOS में स्टैटिक ऑडियो कॉन्टेक्स्ट, इस टेबल में दिए गए हैं.

इस टेबल में, ऑडियो कॉन्टेक्स्ट और इस्तेमाल के बीच की मैपिंग के बारे में बताया गया है. हाइलाइट की गई पंक्तियां, सिस्टम के नए इस्तेमाल के लिए दी गई हैं.

CarAudioContext Associated AttributeUsages
MUSIC UNKNOWN
GAME
MEDIA
NAVIGATION ASSISTANCE_NAVIGATION_GUIDANCE
VOICE_COMMAND ASSISTANT
ASSISTANCE_ACCESSIBILITY
CALL_RING NOTIFICATION_RINGTONE
CALL VOICE_COMMUNICATION
VOICE_COMMUNICATION_SIGNALING
ALARM ALARM
NOTIFICATION NOTIFICATION
NOTIFICATION_*
SYSTEM_SOUND ASSISTANCE_SONIFICATION
EMERGENCY EMERGENCY
SAFETY SAFETY
VEHICLE_STATUS VEHICLE_STATUS
ANNOUNCEMENT ANNOUNCEMENT

AAOS रूटिंग की सुविधा चालू करना

AAOS पर आधारित रूटिंग का इस्तेमाल करने के लिए, आपको audioUseDynamicRouting फ़्लैग को true पर सेट करना होगा:

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
</resources>

जब false, रूटिंग, और CarAudioService की ज़्यादातर सुविधाएं बंद होती हैं, तो AAOS, AudioService के डिफ़ॉल्ट तरीके पर स्विच कर जाता है.

कॉन्फ़िगर किया जा सकने वाला ऑडियो नीति इंजन

Android 14 में कार के ऑडियो मैनेजमेंट को और बेहतर बनाने के लिए, AAOS ने कॉन्फ़िगर किए जा सकने वाले ऑडियो नीति इंजन (सीएपी) के ज़रिए ऑडियो मैनेजमेंट का इस्तेमाल शुरू किया है. ऐसा करने से, ऑडियो रूटिंग और वॉल्यूम मैनेजमेंट को कंट्रोल करने में ज़्यादा आसानी होती है. साथ ही, इनके बारे में अलग-अलग तरह से जानकारी मिलती है:

useCoreAudioVolume और useCoreAudioRouting का इस्तेमाल करके, कॉन्फ़िगर की जा सकने वाली ऑडियो नीति (सीएपी) इंजन को चालू किया जा सकता है. ज़्यादा जानकारी के लिए, कॉन्फ़िगर की जा सकने वाली ऑडियो नीति इंजन देखें.

प्राइमरी ज़ोन

डिफ़ॉल्ट रूप से, सभी ऑडियो को मुख्य ज़ोन पर भेजा जाता है. सिर्फ़ एक प्राइमरी ज़ोन मौजूद होता है, जिसे कॉन्फ़िगरेशन में एट्रिब्यूट isPrimary="true" से दिखाया जाता है. प्राइमरी ज़ोन को अपने-आप Audiomanager.PRIMARY_AUDIO_ZONE असाइन किया जाता है.

सैंपल कॉन्फ़िगरेशन (दूसरा वर्शन)

उदाहरण के लिए, किसी वाहन में दो ज़ोन हो सकते हैं. पहला ज़ोन, मुख्य ज़ोन और दूसरा ज़ोन, पीछे की सीट पर मौजूद मनोरंजन सिस्टम. इस स्थिति में, car_audio_configuration.xml के संभावित वर्शन 2 को इस तरह से डिज़ाइन किया जा सकता है:

<audioZoneConfiguration version="2.0">
       <zone name="primary zone" isPrimary="true">
           <volumeGroups>
               <group>
                   <device address="bus0_media_out">
                       <context context="music"/>
                       <context context="announcement"/>
                   </device>
                   <device address="bus3_call_ring_out">
                       <context context="call_ring"/>
                   </device>
                   <device address="bus6_notification_out">
                       <context context="notification"/>
                   </device>
               </group>
               <group>
                   <device address="bus1_navigation_out">
                       <context context="navigation"/>
                   </device>
                   <device address="bus2_voice_command_out">
                       <context context="voice_command"/>
                   </device>
               </group>
               <group>
                   <device address="bus4_call_out">
                       <context context="call"/>
                   </device>
               </group>
               <group>
                   <device address="bus5_alarm_out">
                       <context context="alarm"/>
                   </device>
               </group>
               <group>
                   <device address="bus7_system_sound_out">
                       <context context="system_sound"/>
                       <context context="emergency"/>
                       <context context="safety"/>
                       <context context="vehicle_status"/>
                   </device>
               </group>
           </volumeGroups>
       </zone>
        <zone name="rear seat zone" audioZoneId="1">
           <volumeGroups>
               <group>
                   <device address="bus100_rear_seat">
                       <context context="music"/>
                       <context context="navigation"/>
                       <context context="voice_command"/>
                       <context context="call_ring"/>
                       <context context="call"/>
                       <context context="alarm"/>
                       <context context="notification"/>
                       <context context="system_sound"/>
                       <context context="emergency"/>
                       <context context="safety"/>
                       <context context="vehicle_status"/>
                       <context context="announcement"/>
                   </device>
               </group>
           </volumeGroups>
    </zones>
</audioZoneConfiguration>

इस उदाहरण में, मुख्य ज़ोन अलग-अलग डिवाइसों के लिए कुछ ऑडियो कॉन्टेक्स्ट को अलग करता है. इससे, एचएएल को पोस्ट-प्रोसेसिंग के अलग-अलग इफ़ेक्ट लागू करने में मदद मिलती है. साथ ही, वाहन के हार्डवेयर का इस्तेमाल करके, हर डिवाइस पर आउटपुट को मिक्स किया जा सकता है. डिवाइसों को वॉल्यूम के कई ग्रुप में बांटा गया है: मीडिया, नेविगेशन, कॉल, अलार्म, और सिस्टम की आवाज़ें. अगर सिस्टम को useFixedVolume पर कॉन्फ़िगर किया गया है, तो हर ग्रुप के वॉल्यूम लेवल को HAL पर भेजा जाता है, ताकि इन डिवाइसों के आउटपुट पर लागू किया जा सके.

हमारा सुझाव है कि मुख्य ज़ोन के लिए, सिस्टम की आवाज़ों को अन्य आवाज़ों से अलग रखें. इससे, वाहन की आवाज़ों को ज़्यादा प्राथमिकता दी जा सकती है. कार की ऑडियो सेवा, फ़ोकस और डकिंग मैनेजमेंट के मामले में, वाहन की आवाज़ों के लिए पहले से ही ये फ़र्क़ करती है. उदाहरण के लिए, आपातकालीन स्थिति में आवाज़ को फ़ोकस करने के अनुरोध को, किसी दूसरे फ़ोकस के अनुरोध से ज़्यादा प्राथमिकता दी जाती है.

सेकंडरी ज़ोन के उदाहरण में, सभी ऑडियो कॉन्टेक्स्ट को एक ही डिवाइस और एक वॉल्यूम ग्रुप पर भेजा जाता है.

सीएपी इंजन के लिए वॉल्यूम ग्रुप की परिभाषा

कॉन्फ़िगर किए जा सकने वाले ऑडियो नीति इंजन में बताए गए तरीके के मुताबिक, सीएपी इंजन की मदद से वॉल्यूम मैनेजमेंट का इस्तेमाल करने के लिए, वॉल्यूम ग्रुप की परिभाषा में एक नाम भी होना चाहिए:


<group name="media">
  <device address="bus0_media_out">
    <context context="music"/>
    <context context="announcement"/>
  </device>
  <device address="bus3_call_ring_out">
     <context context="call_ring"/>
  </device>
  <device address="bus6_notification_out">
    <context context="notification"/>
  </device>
</group>
<group name="navigation">
  <device address="bus1_navigation_out">
    <context context="navigation"/>
  </device>
  <device address="bus2_voice_command_out">
    <context context="voice_command"/>
  </device>
</group>

इस वॉल्यूम ग्रुप का नाम, CAP इंजन में तय किए गए वॉल्यूम के नाम से मेल खाना चाहिए. इसके अलावा, useFixedVolume को भी false पर सेट करना होगा. ज़्यादा जानकारी के लिए, ऑडियो कॉन्फ़िगरेशन के AAOS फ़्लैग देखें.

ऑक्युपेंट ज़ोन के लिए ऑडियो कॉन्फ़िगरेशन

Android 11 में, car_audio_configuration.xml ने दो नए फ़ील्ड, audioZoneId और occupantZoneId को जोड़ा है. ऑडियो ज़ोन मैनेजमेंट को कंट्रोल करने के लिए, audioZoneId का इस्तेमाल किया जा सकता है. यूज़र आईडी के आधार पर रूटिंग कॉन्फ़िगर करने के लिए, occupantZoneId का इस्तेमाल किया जा सकता है.

ऑडियो कॉन्फ़िगरेशन पर फिर से विचार करते हुए, ऑडियो ज़ोन आईडी और ऑक्युपेंट ज़ोन आईडी मैपिंग के लिए नए फ़ील्ड का इस्तेमाल किया जा सकता है. वॉल्यूम ग्रुप की परिभाषाओं के बिना, नया कॉन्फ़िगरेशन इस तरह सेट अप किया जा सकता है:

<audioZoneConfiguration version="2.0">
       <zone name="primary zone" isPrimary="true" occupantZoneId="0">
         ...
       </zone>
       <zone name="rear seat zone" audioZoneId="1" occupantZoneId="1">
         ...
       </zone>
    </zones>
</audioZoneConfiguration>

कॉन्फ़िगरेशन, मुख्य ज़ोन से यात्री ज़ोन 0 और audioZoneId 1 से occupantZoneId 1 के लिए मैपिंग तय करता है. ऑडियो ज़ोन और सवार के ज़ोन के बीच किसी भी तरह की मैपिंग को कॉन्फ़िगर किया जा सकता है. हालांकि, मैपिंग एक-से-एक होनी चाहिए. दो नए फ़ील्ड तय करने वाले नियम ये हैं:

  • प्राइमरी ज़ोन के लिए audioZoneId हमेशा PRIMARY_AUDIO_ZONE आईडी होता है. अगर isPrimary="true" की वैल्यू दी गई है, तो audioZoneId की वैल्यू देने की ज़रूरत नहीं है.

  • audioZoneId और occupantZoneId नंबर दोहराए नहीं जा सकते.

  • audioZoneId और occupantZoneId के बीच सिर्फ़ एक-एक मैपिंग हो सकती है.

Android 14 के लिए कार ऑडियो कॉन्फ़िगरेशन

Android 14 में, AAOS ने OEM प्लग-इन सेवा को लॉन्च किया है. इसकी मदद से, कार की ऑडियो सेवा की निगरानी में ऑडियो व्यवहार को मैनेज किया जा सकता है. नई प्लग इन सेवाओं के साथ-साथ, कार के ऑडियो कॉन्फ़िगरेशन फ़ाइल में ये बदलाव भी किए गए हैं:

  • कार में ऑडियो के लिए, OEM का तय किया गया कॉन्टेक्स्ट
  • प्राइमरी ज़ोन के अलावा अन्य ज़ोन के डाइनैमिक कॉन्फ़िगरेशन

कार में ऑडियो के लिए, OEM का तय किया गया कॉन्टेक्स्ट

Android 14 में, कार ऑडियो सेवा की मदद से ऑडियो कॉन्फ़िगरेशन को आसानी से चालू किया जा सकता है. इसकी मदद से, ऑडियो के इस्तेमाल को तय किए गए स्टैटिक ऑडियो कॉन्टेक्स्ट के बजाय, अलग-अलग ग्रुप में बांटा जा सकता है. OEM के तय किए गए इस कॉन्टेक्स्ट को car_audio_configuration.xml वर्शन 3 फ़ाइल में तय किया जा सकता है.

इसके बजाय, पहले से तय किए गए स्टैटिक ऑडियो कॉन्टेक्स्ट का इस्तेमाल किया जाता है. OEM की ओर से तय किए गए कार ऑडियो कॉन्टेक्स्ट का सामान्य फ़ॉर्मैट बाद में दिखाया गया है.

हर OEM कॉन्टेक्स्ट के लिए, name के साथ-साथ ऑडियो एट्रिब्यूट के इस्तेमाल की सूची ज़रूरी है. ऊपर दिए गए उदाहरण में, दो कॉन्टेक्स्ट तय किए गए हैं:

<carAudioConfiguration version="3">
    <oemContexts>
        <oemContext name="media">
            <audioAttributes>
                <usage value="AUDIO_USAGE_MEDIA" />
    <usage value="AUDIO_USAGE_UNKNOWN"/>
            </audioAttributes>
        </oemContext>
        <oemContext name="game">
            <audioAttributes>
                <usage value="AUDIO_USAGE_GAME" />
            </audioAttributes>
        </oemContext>
...
  • media कॉन्टेक्स्ट में AUDIO_USAGE_MEDIA और AUDIO_USAGE_UNKNOWN शामिल हैं
  • game कॉन्टेक्स्ट में सिर्फ़ AUDIO_USAGE_GAME है

संदर्भ को car_audio_configuration.xml फ़ाइल में सबसे ऊपर तय किया जाना चाहिए. OEM कॉन्टेक्स्ट तय होने के बाद, कार के ऑडियो कॉन्फ़िगरेशन का बाकी हिस्सा पहले की तरह ही किया जा सकता है. कार के ऑडियो कॉन्टेक्स्ट पर ये नियम लागू होते हैं:

  • OEM कॉन्टेक्स्ट की परिभाषाएं देना ज़रूरी नहीं है. इसके बजाय, स्टैटिक ऑडियो कॉन्टेक्स्ट का इस्तेमाल किया जाता है.

  • कॉन्टेक्स्ट के नाम दोहराएं नहीं.

  • ऑडियो एट्रिब्यूट के इस्तेमाल को एक से ज़्यादा संदर्भों में असाइन न करें.

  • कॉन्टेक्स्ट बनाने के लिए, AudioAttributes में बताए गए ऑडियो के सभी इस्तेमाल का इस्तेमाल किया जाना चाहिए.

असल में, OEM ऑडियो कॉन्टेक्स्ट की परिभाषा के लिए, ऑडियो के इस्तेमाल की android.audio.policy.configuration.V7_0.AudioUsage स्ट्रिंग का इस्तेमाल किया जाना चाहिए. आने वाले समय में, ऑडियो एट्रिब्यूट के नए इस्तेमाल को सबसे सही संदर्भ में असाइन किया जाएगा. इससे, एक Android वर्शन से दूसरे वर्शन पर माइग्रेट करते समय होने वाली गड़बड़ी को कम किया जा सकेगा.

OEM प्लग इन की ऑडियो सेवा को और बेहतर बनाने के लिए, OEM के तय किए गए कॉन्टेक्स्ट को लॉन्च किया गया था. हालांकि, इसका इस्तेमाल अब भी OEM प्लग इन की सेवा के बिना किया जा सकता है. ऑडियो का व्यवहार, स्टैटिक ऑडियो सेवा जैसा ही होता है:

  • ऑडियो फ़ोकस इंटरैक्शन. ऑडियो एट्रिब्यूट का इस्तेमाल, ऑडियो फ़ोकस इंटरैक्शन मैट्रिक के हिसाब से, सबसे बेहतर मैच करने वाले व्यवहार का पता लगाने के लिए किया जाता है. ज़्यादा जानकारी के लिए, ऑडियो फ़ोकस लेख पढ़ें.

  • ऑडियो वॉल्यूम कंट्रोल ऑडियो एट्रिब्यूट का इस्तेमाल, सबसे अच्छी तरह से मैच करने वाले आइटम का पता लगाने के लिए किया जाता है:

    • OEM के तय किए गए कॉन्टेक्स्ट के आधार पर वॉल्यूम ग्रुप.
    • कॉन्फ़िगर की गई स्टैटिक वॉल्यूम सूची से प्राथमिकता.
  • ऑडियो डकिंग की सुविधा का काम करने का तरीका:

    • मौजूदा ऑडियो फ़ोकस के लिए ऑडियो एट्रिब्यूट के इस्तेमाल का इस्तेमाल, कार के ऑडियो कॉन्फ़िगरेशन फ़ाइल में बताई गई ऑडियो डिवाइस की जानकारी को आउटपुट करने के लिए किया जाता है.

    • ऑडियो एट्रिब्यूट का इस्तेमाल, स्टैटिक ऑडियो डकिंग मैट्रिक के आधार पर, डक करने के लिए मिलते-जुलते स्टैटिक कॉन्टेक्स्ट को मैप करने के लिए किया जाता है.

सीएपी इंजन की प्रॉडक्ट रणनीतियां

जब किसी डिवाइस को वॉल्यूम या रूटिंग मैनेजमेंट के लिए CAP इंजन का इस्तेमाल करना ज़रूरी हो, तो OEM के तय किए गए कॉन्टेक्स्ट की जानकारी, CAP इंजन की प्रॉडक्ट रणनीति की जानकारी से मेल खानी चाहिए. अगर ऐसा नहीं है, तो सीएपी इंजन के बिना, OEM के तय किए गए कॉन्टेक्स्ट का इस्तेमाल किया जा सकता है.

ज़्यादा जानने के लिए, AAOS में CAP इंजन प्रॉडक्ट की प्रॉडक्ट रणनीति देखें.

डाइनैमिक ऑडियो ज़ोन के कॉन्फ़िगरेशन

Android 14 में, ऑडियो ज़ोन के डाइनैमिक कॉन्फ़िगरेशन को शामिल करने के लिए, ऑडियो ज़ोन तय करने के लिए कार के ऑडियो कॉन्फ़िगरेशन स्कीमा को भी वर्शन 3 पर अपडेट किया गया है. नए स्कीमा के लिए, हर ज़ोन के लिए कॉन्फ़िगरेशन सेट अप करना ज़रूरी है.

<carAudioConfiguration version="3">
    <!-- optional OEM context -->
    <oemContexts>
      <oemContext name="media">
        <audioAttributes>
          <usage value="AUDIO_USAGE_MEDIA" />
          <usage value="AUDIO_USAGE_UNKNOWN"/>
        </audioAttributes>
      </oemContext>
      <oemContext name="game">
        <audioAttributes>
          <usage value="AUDIO_USAGE_GAME" />
        </audioAttributes>
      </oemContext>
...
    </oemContexts>
  <zones>
    <zone name="primary zone" isPrimary="true" occupantZoneId="0">
      <zoneConfigs>
        <zoneConfig name="primary zone config 0" isDefault="true">
          <volumeGroups>
            <group>
              <device address="bus0_media_out">
                <context context="media"/>
            <context context="game"/>
                <context context="announcement"/>
              </device>
              <device address="bus6_notification_out">
                <context context="notification"/>
              </device>
            </group>
  ...
      </zoneConfigs>
    </zone
  </zones>

ज़्यादा जानने के लिए, device/generic/car/emulator/audio/car_audio_configuration.xml में बताई गई वर्शन 3 फ़ाइल देखें. Android 14 से, प्राइमरी ज़ोन में सिर्फ़ एक (1) कॉन्फ़िगरेशन हो सकता है. नॉन-प्राइमरी ज़ोन में कई कॉन्फ़िगरेशन हो सकते हैं. कार के ऑडियो कॉन्फ़िगरेशन पर ये नियम लागू होते हैं:

  • मुख्य ऑडियो ज़ोन में सिर्फ़ एक कॉन्फ़िगरेशन हो सकता है.

  • प्राइमरी ऑडियो ज़ोन के अलावा, अन्य ऑडियो ज़ोन में कई कॉन्फ़िगरेशन हो सकते हैं.

  • हर ऑडियो ज़ोन और ऑडियो ज़ोन कॉन्फ़िगरेशन के लिए, नाम यूनीक होना चाहिए.

  • किसी ऑडियो ज़ोन में, ऑडियो कॉन्फ़िगरेशन अलग-अलग हो सकते हैं:

    • यह ज़रूरी नहीं है कि वॉल्यूम ग्रुप का सेट-अप एक जैसा हो.
    • ऑडियो कॉन्टेक्स्ट असाइनमेंट एक जैसे होने ज़रूरी नहीं हैं.
  • ऑडियो आउटपुट डिवाइस के नाम, सभी ज़ोन या कॉन्फ़िगरेशन में यूनीक होने चाहिए. डिवाइस का नाम, ऑडियो कॉन्फ़िगरेशन या ज़ोन में सिर्फ़ एक बार दिखना चाहिए.

  • एक ही वॉल्यूम ग्रुप में शामिल ऑडियो डिवाइसों के लिए, ऑडियो वॉल्यूम बढ़ाने या घटाने की सुविधा के कॉन्फ़िगरेशन एक ही होने चाहिए.

  • हर ऑडियो कॉन्फ़िगरेशन के लिए, सभी ऑडियो कॉन्टेक्स्ट (OEM या स्टैटिक) असाइन किए जाने चाहिए.

नए सिस्टम के साथ काम करने की सुविधा

car_audio_configuration.xml के नए वर्शन में हर अपडेट के साथ नई सुविधाएं आती हैं. हालांकि, AAOS के नए वर्शन में अब भी पुरानी फ़ाइलों का इस्तेमाल किया जा सकता है. Android के नए वर्शन पर अपडेट करने वाले OEM, car_audio_configuration.xml फ़ाइल का फिर से इस्तेमाल कर सकते हैं.

अगर आपको किसी ऐसी नई सुविधा का इस्तेमाल करना है जिसके लिए car_audio_configuration.xml में मौजूद नई जानकारी की ज़रूरत है, तो आपको car_audio_configuration.xml को अपडेट करना होगा. अगर किसी फ़ाइल के पुराने वर्शन का इस्तेमाल करने की कोशिश की जाती है और उसमें ऐसी जानकारी होती है जो उस फ़ाइल के वर्शन में काम नहीं करती, तो कार सेवा शुरू करने पर IllegalStateException गड़बड़ी का कोड दिखता है. अपवाद वाले मैसेज में, यह जानकारी शामिल होती है कि किस जानकारी का इस्तेमाल किया जाता है और कम से कम किस वर्शन की ज़रूरत होती है.