গাড়ির অডিও কনফিগারেশন

Android 10-এ car_audio_configuration.xml car_volumes_groups.xml এবং IAudioControl.getBusForContext প্রতিস্থাপিত হয়েছে। অডিও নীতি ফাইলগুলি, সাধারণত বিক্রেতা পার্টিশনে থাকে, বোর্ডের অডিও হার্ডওয়্যার কনফিগারেশনের প্রতিনিধিত্ব করে। car_audio_configuration.xml এ উল্লেখ করা সমস্ত ডিভাইস অবশ্যই audio_policy_configuration.xml এ সংজ্ঞায়িত করতে হবে।

চিত্র 1 গাড়ির অডিও পরিষেবা আর্কিটেকচারের একটি ওভারভিউ চিত্রিত করে যেখানে গাড়ি অডিও পরিষেবাটি ডিভাইসের জন্য অডিও সেট আপ করতে গাড়ি অডিও কনফিগারেশন ফাইলটি পড়ে।

গাড়ির অডিও আর্কিটেকচার ওভারভিউ

চিত্র 1. গাড়ির অডিও আর্কিটেকচার ওভারভিউ।

গাড়ির অডিও কনফিগারেশন ফাইলটিকে vendor/etc/ বা system/etc/ ডিভাইসে রাখুন, গাড়ির অডিও পরিষেবার দ্বারা ফাইলটির জন্য প্রথম স্থানে vendor/etc/ সার্চ করা হয়েছে। গাড়ির অডিও পরিষেবাগুলি অডিও কনফিগারেশন নির্ধারণ করতে car_audio_configuration.xml পড়ে।

গাড়ির অডিও জোন:

  • প্রতিটি অডিও জোনে একটি অনন্য অডিও জোন আইডি থাকে।
  • প্রতিটি অডিও জোন একটি দখলকারী অঞ্চলে ম্যাপ করা যেতে পারে।
  • প্রতিটি জোনের অডিও ক্রিয়া একে অপরের থেকে স্বাধীন:

    • অডিও ফোকাস
    • অডিও রাউটিং
    • অডিও হাঁস
  • গাড়ির ভলিউম গ্রুপ:

    • ভলিউম গ্রুপ ধারণ করা সমস্ত অডিও ডিভাইস একই লাভ পরিবর্তনের সাথে একসাথে নিয়ন্ত্রিত হয়। একটি গ্রুপের সমস্ত ডিভাইসের জন্য অডিও গেইন কনফিগারেশন একই হওয়া উচিত।

    • অডিও ডিভাইস ম্যাপিং অডিও প্রসঙ্গ. একটি আউটপুট ডিভাইসে অডিও ব্যবহার ম্যাপ করে এমন একটি অডিও মিশ্রণ তৈরি করতে এটি ব্যবহার করুন।

    • সমস্ত অডিও প্রসঙ্গ একটি জোনের মধ্যে উপস্থাপন করা উচিত। এটি সমস্ত অডিও বৈশিষ্ট্য ব্যবহারের জন্য অডিও রাউটিং সঠিকভাবে সেট আপ করার অনুমতি দেয়।

অডিও প্রসঙ্গ

AAOS অডিওর কনফিগারেশন সহজ করার জন্য, অনুরূপ ব্যবহারগুলিকে CarAudioContexts এ গোষ্ঠীভুক্ত করা হয়েছে। রাউটিং, ভলিউম গ্রুপ, অডিও ফোকাস, এবং ডাকিং ম্যানেজমেন্ট সংজ্ঞায়িত করতে এই অডিও প্রসঙ্গগুলি CarAudioService জুড়ে ব্যবহৃত হয়। AAOS-এ স্ট্যাটিক অডিও প্রসঙ্গগুলি এই টেবিলে তালিকাভুক্ত করা হয়েছে।

এই টেবিলটি অডিও প্রসঙ্গ এবং ব্যবহারের মধ্যে ম্যাপিং বর্ণনা করে। হাইলাইট করা সারি একটি নতুন সিস্টেম ব্যবহারের জন্য প্রদান করা হয়.

CarAudio Context সংযুক্ত বৈশিষ্ট্য ব্যবহার
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 ডিফল্ট আচরণে ফিরে আসে।

কনফিগারযোগ্য অডিও নীতি ইঞ্জিন

অ্যান্ড্রয়েড 14-এ গাড়ির অডিও ব্যবস্থাপনাকে আরও প্রসারিত করতে, AAOS কনফিগারেবল অডিও পলিসি ইঞ্জিন (CAP) এর মাধ্যমে অডিও পরিচালনার ব্যবহার চালু করেছে। এটি করা অডিও রাউটিং এবং ভলিউম পরিচালনা নিয়ন্ত্রণে আরও নমনীয়তা প্রদান করে এবং এর বহুমুখী সংজ্ঞা প্রদান করে:

আপনি useCoreAudioVolume এবং useCoreAudioRouting ব্যবহারের মাধ্যমে কনফিগারযোগ্য অডিও নীতি (CAP) ইঞ্জিন সক্ষম করতে পারেন, বিস্তারিত জানার জন্য কনফিগারযোগ্য অডিও নীতি ইঞ্জিন দেখুন।

প্রাথমিক অঞ্চল

ডিফল্টরূপে, সমস্ত অডিও প্রাথমিক জোনে রাউট করা হয়। শুধুমাত্র একটি প্রাথমিক অঞ্চল বিদ্যমান, যা isPrimary="true" বৈশিষ্ট্য দ্বারা কনফিগারেশনে নির্দেশিত হয়। প্রাথমিক জোনটি স্বয়ংক্রিয়ভাবে Audiomanager.PRIMARY_AUDIO_ZONE বরাদ্দ করা হয়েছে৷PRIMARY_AUDIO_ZONE৷

নমুনা কনফিগারেশন (সংস্করণ 2)

উদাহরণস্বরূপ, একটি গাড়ির দুটি জোন থাকতে পারে, একটি প্রাথমিক জোন এবং একটি পিছনের আসনের বিনোদন ব্যবস্থা। এই পরিস্থিতিতে, আপনি একটি সম্ভাব্য 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>

এই উদাহরণে, প্রাথমিক জোন কিছু অডিও প্রসঙ্গকে বিভিন্ন ডিভাইসে আলাদা করে। এটি HAL কে বিভিন্ন পোস্ট-প্রসেসিং প্রভাব প্রয়োগ করতে এবং গাড়ির হার্ডওয়্যার ব্যবহার করে প্রতিটি ডিভাইসে আউটপুট মিশ্রিত করতে সক্ষম করে। ডিভাইসগুলিকে কয়েকটি ভলিউম গ্রুপে সাজানো হয়েছে: মিডিয়া, নেভিগেশন, কল, অ্যালার্ম এবং সিস্টেম সাউন্ড। যদি সিস্টেমটি useFixedVolume জন্য কনফিগার করা হয়, তাহলে এই ডিভাইসগুলির আউটপুটে প্রয়োগ করার জন্য প্রতিটি গ্রুপের ভলিউম স্তরগুলি HAL-তে প্রেরণ করা হয়।

প্রাথমিক অঞ্চলের জন্য, আমরা সুপারিশ করি যে সিস্টেমের শব্দগুলি অন্যান্য শব্দ থেকে আলাদা হওয়া উচিত। এটি গাড়ির শব্দগুলিকে উচ্চ অগ্রাধিকার দিয়ে চিকিত্সা করার অনুমতি দেয়। গাড়ির অডিও পরিষেবা ইতিমধ্যেই ফোকাস এবং হাঁস পরিচালনার ক্ষেত্রে গাড়ির শব্দগুলির জন্য এই পার্থক্যগুলি তৈরি করে। উদাহরণস্বরূপ, একটি জরুরী শব্দ ফোকাস অনুরোধের অন্য ফোকাস অনুরোধের চেয়ে উচ্চ অগ্রাধিকার রয়েছে।

সেকেন্ডারি জোন উদাহরণে, সমস্ত অডিও প্রসঙ্গ একটি একক ডিভাইস এবং একটি ভলিউম গ্রুপে রাউট করা হয়।

CAP ইঞ্জিনের জন্য ভলিউম গ্রুপ সংজ্ঞা

কনফিগারেবল অডিও পলিসি ইঞ্জিনে উল্লিখিত সিএপি ইঞ্জিনের মাধ্যমে ভলিউম ম্যানেজমেন্ট ব্যবহার করতে ভলিউম গ্রুপ সংজ্ঞাতে একটি নামও থাকতে হবে:


<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 ID হয়৷ যদি isPrimary="true" সংজ্ঞায়িত করা হয়, তাহলে audioZoneId প্রয়োজন নেই।

  • audioZoneId এবং occupantZoneId নম্বরগুলি পুনরাবৃত্তি করা যাবে না৷

  • audioZoneId এবং occupantZoneId শুধুমাত্র এক থেকে এক ম্যাপিং থাকতে পারে।

অ্যান্ড্রয়েড 14 গাড়ির অডিও কনফিগারেশন

অ্যান্ড্রয়েড 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 এ সংজ্ঞায়িত সমস্ত অডিও ব্যবহার প্রসঙ্গ তৈরি করতে ব্যবহার করা উচিত।

কঠোরভাবে বলতে গেলে, অডিও ব্যবহারের android.audio.policy.configuration.V7_0.AudioUsage স্ট্রিং উপস্থাপনা অবশ্যই OEM অডিও প্রসঙ্গ সংজ্ঞার জন্য ব্যবহার করা উচিত। ভবিষ্যতে, একটি অ্যান্ড্রয়েড সংস্করণ থেকে অন্য সংস্করণে স্থানান্তরিত করার সময় ত্রুটি কমাতে সবচেয়ে উপযুক্ত প্রেক্ষাপটে নতুন অডিও অ্যাট্রিবিউটের ব্যবহার বরাদ্দ করা হবে।

যদিও OEM-সংজ্ঞায়িত প্রসঙ্গটি OEM প্লাগইন অডিও পরিষেবাকে আরও প্রসারিত করার জন্য চালু করা হয়েছিল, এটি এখনও OEM প্লাগইন পরিষেবা ছাড়াই ব্যবহার করা যেতে পারে। অডিও আচরণ স্ট্যাটিক অডিও পরিষেবার অনুরূপ:

  • অডিও ফোকাস মিথস্ক্রিয়া. অডিও অ্যাট্রিবিউট ব্যবহার করা হয় অডিও ফোকাস ইন্টারঅ্যাকশন ম্যাট্রিক্স দ্বারা সেট আপ করা সেরা ম্যাচিং আচরণ নির্ধারণ করতে। বিস্তারিত জানার জন্য, অডিও ফোকাস দেখুন।

  • অডিও ভলিউম কন্ট্রোল অডিও অ্যাট্রিবিউট সেরা মিল নির্ধারণ করতে ব্যবহৃত হয়:

    • OEM-সংজ্ঞায়িত প্রসঙ্গের উপর ভিত্তি করে ভলিউম গ্রুপ।
    • কনফিগার করা স্ট্যাটিক ভলিউম তালিকা থেকে অগ্রাধিকার।
  • অডিও হাঁস আচরণ:

    • বর্তমান অডিও ফোকাসের জন্য অডিও অ্যাট্রিবিউট ব্যবহার গাড়ির অডিও কনফিগারেশন ফাইলে সংজ্ঞায়িত আউটপুট অডিও ডিভাইস তথ্য ম্যাপ করতে ব্যবহৃত হয়।

    • অডিও অ্যাট্রিবিউট স্ট্যাটিক অডিও ডাকিং ম্যাট্রিক্সের উপর ভিত্তি করে হাঁসের সাথে সম্পর্কিত স্ট্যাটিক প্রসঙ্গ ম্যাপ করতে ব্যবহৃত হয়।

CAP ইঞ্জিন পণ্য কৌশল

যখন একটি ডিভাইস ভলিউম বা রাউটিং পরিচালনার জন্য CAP ইঞ্জিন ব্যবহার করতে হবে, তখন আপনার OEM-সংজ্ঞায়িত প্রসঙ্গ অবশ্যই CAP ইঞ্জিন পণ্য কৌশল সংজ্ঞার সাথে মেলে। যদি না হয়, আপনি CAP ইঞ্জিন ছাড়াই OEM-সংজ্ঞায়িত প্রসঙ্গ ব্যবহার করতে পারেন।

আরও জানতে, AAOS-এ CAP ইঞ্জিন পণ্য পণ্যের কৌশল দেখুন।

ডায়নামিক অডিও জোন কনফিগারেশন

অ্যান্ড্রয়েড 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 এ থাকা নতুন তথ্যের প্রয়োজন এমন একটি নতুন বৈশিষ্ট্য ব্যবহার করতে, সংস্করণটি আপডেট করতে হবে। সেই ফাইল সংস্করণে সমর্থিত নয় এমন তথ্য সহ একটি পুরানো সংস্করণ ব্যবহার করার চেষ্টা করা গাড়ি পরিষেবা শুরু করার সময় একটি IllegalStateException ফেলে দেয়৷ ব্যতিক্রম বার্তাটিতে কোন তথ্য ব্যবহার করা হয়েছে এবং কোন ন্যূনতম সংস্করণ প্রয়োজন সে সম্পর্কে প্রাসঙ্গিক তথ্য রয়েছে।