علامات AAOS الخاصة بإعدادات الصوت

يستخدم نظام التشغيل Android Automotive OS (AAOS) علامات وإعدادات لتفعيل ميزات مختلفة، بدءًا من التوجيه الديناميكي إلى علامات الميزات الأكثر عمومية، مثل التحكّم في مستوى الصوت من خدمة السيارة. في ما يلي وصف علامات إعدادات AAOS الحالية لإدارة الصوت.

إبلاغ الغرض
audioUseDynamicRouting يتم تحديدها في ملف إعدادات خدمة السيارة لأجل تفعيل توجيه AAOS. يجب ضبط الإعداد على true. عند إيقاف false، توجيه الصوت ومعظم CarAudioService، يعود نظام التشغيل إلى السلوك التلقائي الموضّح في ضبط سياسات الصوت.
audioUseCarVolumeGroupMuting يتم تحديده في ملف إعدادات خدمة السيارة لتفعيل كتم صوت المجموعات الفردية لمستوى الصوت. عند ضبط القيمة على false (القيمة التلقائية)، يتم إيقاف كتم صوت المجموعات الفردية لمستوى الصوت. بدلاً من ذلك، يؤدي كتم الصوت إلى تفعيل ميزة كتم الصوت الرئيسي. عند ضبطه على true، يتم تفعيل كتم صوت مجموعة مستوى الصوت في السيارة ويمكن كتم صوت كل مجموعة فردية من مجموعات مستوى الصوت بشكل منفصل. عند true، يجب تنفيذ كتم صوت مجموعة الصوت في Audio Control HAL.
audioUseHalDuckingSignals يتم تحديده في ملف ضبط خدمة السيارة لتفعيل واجهة برمجة التطبيقات IAudioControl#onDevicesToDuckChange لإعلام HAL بالوقت المناسب للتوغّل. عندما تكون القيمة true (القيمة التلقائية)، تتلقّى واجهة برمجة التطبيقات إشارات تشير إلى الأجهزة التي يجب كتم صوتها واستخدامات الصوت التي يجب التركيز عليها. عند false، لا يتم استدعاء واجهة برمجة التطبيقات. لا يتمّ استدعاء واجهة برمجة التطبيقات ما لم ينفِّذ Audio Control HAL وضع كتم الصوت.
config_oemCarService تم تحديده في ملف إعدادات خدمة السيارة، وهو اسم المكوّن للخدمة المخصّصة للمصنع الأصلي للجهاز. يمكن لمصنّعي السيارات الأصليين اختيار تنفيذ هذه الخدمة لأجل تخصيص إجراءات صيانة السيارات حسب السياسات المختلفة. إذا اختارت المصنّعين الأصليّين للسيارات تنفيذ هذا المكوّن، عليهم تنفيذ خدمة لتوسيع نطاق OemCarService الذي تعرضه car-lib، ثم تنفيذ خدمات المكوّنات المطلوبة. بالنسبة إلى خدمة الصوت في السيارة على وجه التحديد، يمكن لمصنّعي السيارات تنفيذ أيّ من الخدمات الفرعية للصوت لإدارة الإجراءات الصوتية. للاطّلاع على التفاصيل، يُرجى الاطّلاع على Car Audio Plugin Service. إذا كان اسم المكوّن غير صالح، لن يتمكّن CarService من الربط بأي خدمة من خدمات المصنّعين الأصليّين للأجهزة. لا يمكن أن يكون اسم المكوّن حزمة تابعة لجهة خارجية. يجب أن يكون مثبّتًا مسبقًا.
audioVolumeAdjustmentContextsVersion

يتم تحديده في ملف إعدادات خدمة السيارة، وهو الإعداد لاختيار إصدار قائمة أولويات سياق ضبط مستوى الصوت.

يتضمّن الإصدار 1 جميع السياقات الصوتية بالترتيب التالي:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

يقتصر الإصدار 2 على السياقات التالية، بهذا الترتيب.

الإصدار التلقائي هو 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState تم تحديده في ملف إعدادات خدمة السيارة، وهو إعداد للحفاظ على حالة كتم الصوت العميم. عندما تكون القيمة true (القيمة التلقائية)، يستعيد Android حالة كتم الصوت الشاملة عند بدء التشغيل. عندما يكون الخيار audioUseCarVolumeGroupMuting true، لا يؤثّر ذلك في التغييرات الدائمة الخاصة بإيقاف الصوت، لأنّ التغييرات المتعلّقة بالإيقاف الصوت تستند إلى مجموعات مستوى الصوت الفردية. يتم ضبط القيمة التلقائية على true ويجب استبدالها عندما لا يكون المطلوب هو الحفاظ على كتم الصوت الرئيسي على جهاز معيّن.
audioVolumeKeyEventTimeoutMs

تم تحديده في ملف ضبط خدمة السيارة، وهو الإعداد الذي يشير إلى مهلة الانتظار بالملي ثانية عندما تكون مجموعة مستوى الصوت في السيارة نشطة لتطبيق التغييرات على عناصر التحكّم في الصوت أثناء الأحداث الرئيسية لمستوى الصوت. يتم استخدام الإعدادات على النحو التالي:

  • يتم استخدام مهلة تحديد الوقت لتحديد ما إذا كان لا يزال بإمكاننا مراعاة مستوى صوت التشغيل (مستوى الصوت المرتبط باستخدام الصوت في التشغيل) لاختيار مستوى الصوت تلقائيًا بعد إيقاف التشغيل.
  • يتم استخدام مهلة الانتظار أيضًا كمدة الإيقاف المؤقت المطلوبة بين تعديلات مستوى الصوت التلقائية لتغيير مستوى الصوت الذي يعدّله المستخدم.

القيمة التلقائية هي 3000 ملي ثانية، ويجب أن يعدّلها المصنّعون الأصليون للأجهزة لتحسين تجربة المستخدم.

audioUseCarVolumeGroupEvent يتم تحديدها في ملف إعدادات خدمة السيارة، وهي الإعدادات التي تتيح إعادة الاتصال بالأحداث إلى مجموعات الصوت. عند true، يتلقّى العملاء مكالمة تأكيد من خلال ICarVolumeGroupEvent بشأن الأحداث التي تؤثّر في مجموعات عدد المكالمات. عند تفعيل هذه الميزة:

  • ننصح المورّدين بشدة بتوفير IAudioControl#setModuleChangeCallback وIAudioControl#registerGainCallback أيضًا للأحداث والتغييرات في الأجهزة الصوتية.
  • عند تسجيل كل من CarVolumeCallback CarVolumeGroupEventCallback من خلال التطبيق نفسه، يجب أن يتم إرسال طلبات الحصول على فهرس مجموعة الصوت وطلبات كتم صوت مجموعة الصوت من خلال CarVolumeGroupEventCallback فقط. لذلك، ننصحك بشدة بنقل جميع التطبيقات إلى واجهة callback الجديدة لضمان الأداء المتسق.
  • تكون القيمة التلقائية false. ننصحك بضبط قيمة هذا الإعداد على true لأنّ واجهات برمجة التطبيقات التي تتيح طلبات إعادة الاتصال القديمة متوقّفة نهائيًا وستتم إزالتها قريبًا تمامًا.

config_useFixedVolume تم تحديدها في frameworks/base/core/res/res/values/config.xml. يجب ضبطه على true للسماح لخدمة الصوت في السيارة بإدارة التحكّم في مستوى الصوت. عندما لا يتم ضبط العلامة config_useFixedVolume أو ضبطها على false (القيمة التلقائية)، يمكن للتطبيقات طلب بيانات من واجهتَي برمجة التطبيقات AudioManager لإدارة مستوى الصوت وتغيير مستوى الصوت من خلال نوع البث في أداة مزج البرامج. قد يكون هذا غير مرغوب فيه بسبب التأثير المحتمل على التطبيقات الأخرى وحقيقة أنّ تقليل مستوى الصوت في أداة مزج البرامج يمكن أن يؤدي إلى تقليل عدد البتات المهمة المتاحة في الإشارة عند تلقّيها في مضخم الأجهزة. الأجهزة الجديدة التي لم يتم ضبطها والتي تم ضبطها على true لتلقّي تغييرات مستوى الصوت من خلال واجهات برمجة التطبيقات AudioManager لمستوى الصوت وكتم الصوت
config_handleVolumeKeysInWindowManager تم تحديده في frameworks/base/core/res/res/values/config.xml، ويجب ضبطه على true للسماح لخدمة الصوت في السيارة باعتراض الأحداث الرئيسية للمستوى الصوتي. في حال ضبط القيمة على 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/.

طلبات الحصول على موافقة من الجهات التنظيمية لخدمات السيارات

منذ 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>

يحتوي بيان التراكب على الموارد المحدَّد في device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml على targetPackage التي تم ضبطها على com.android.car.updatable.

اطّلِع على هذه المراجع للحصول على مزيد من المعلومات:

واجهة برمجة تطبيقات تتيح استخدام الميزات

تعرِض الطريقة القيمة true إذا كانت الميزة مفعّلة على الجهاز، وfalse بخلاف ذلك. في واجهة برمجة التطبيقات CarAudioManager#isAudioFeatureEnabled، يجب أن تكون المَعلمة المُرسَلة إحدى:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING