إعادة تصميم Audio Managed SCO

توضّح هذه الصفحة كيفية تفعيل إطار عمل الصوت وAHAL لإدارة اتصالات SCO، وهي عملية يُشار إليها باسم Audio Managed SCO (AMSCO).

في Android 17 والإصدارات الأحدث، يستخدم إطار عمل الصوت على Android ميزة إدارة SCO لإدارة توجيه SCO، التي كان يديرها في الأصل إطار عمل Bluetooth (BT). تؤدي عملية النقل هذه إلى نقل حالة اتصال SCO من حالة يملكها إطار عمل BT إلى نتيجة نهائية لنشاط بث الصوت.

من خلال مركزية ملكية توجيه الصوت ضمن إطار عمل الصوت، تتوافق هذه الميزة مع تنفيذ طبقة تجريد أجهزة الصوت (HAL) لـ SCO مع ملفات تعريف BT الأخرى، مثل ملف تعريف توزيع الصوت المتقدم (A2DP) وLE Audio. تؤدي عملية إعادة البنية هذه إلى تبسيط التفاعل بين حزمتَي الاتصالات وBT، ما يتيح بنية توجيه صوت أكثر قوة ومركزية.

نظرة عامة على البنية

تُركّز بنية AMSCO إدارة اتصالات SCO ضمن إطار عمل الصوت على Android، الذي يستند في قرارات التوجيه إلى نشاط بث الصوت. تختلف هذه البنية عن النموذج السابق الذي كانت فيه حزمة BT تدير الاتصالات. في ما يلي أدوار كل مكوّن في هذه البنية:

يبدأ AHAL جلسة SCO ويوقفها مؤقتًا فقط في حال استيفاء الشروط التالية:

  • يتم ربط بث نشط بجهاز SCO.
  • يتم ضبط وضع الصوت، ويتوفّر ربط بجهاز SCO.

يمنع إطار عمل الصوت جهاز A2DP من الحصول على ربط متزامن عند استيفاء هذه المعايير المحدّدة. لم يعُد إطار عمل الصوت يرسل تغييرات حالة SCO أو عمليات إيقاف A2DP مؤقتًا إلى AHAL.

يتولى إطار عمل الصوت إدارة SCO، لذا لم تعُد حزمة BT تستدعي دالة ربط الصوت أو فصله. في حالات فصل SCO الاستباقي أو حدوث خطأ، تُعلم حزمة BT إطار عمل الصوت باستخدام AudioManager#onHfpAudioDisconnected.

الخطة

استخدِم المعلومات الواردة في هذا القسم لتقييم متطلبات التوافق والبنية التالية قبل تنفيذ عملية إعادة بنية إدارة SCO.

التوافق مع الإصدارات السابقة

للسماح لإطار العمل بمواصلة دعم الأجهزة التي قد تتلقّى تحديثات لنظام التشغيل بدون تحديث AHAL أو BT AHAL، استخدِم خاصية نظام للإشارة إلى أنّه يجب تفعيل إدارة SCO الجديدة. يتم الاحتفاظ بالمسار القديم لمدة تصل إلى ست سنوات في الحالات التي تكون فيها خاصية النظام غير مفعّلة أو يكون إصدار HAL قديمًا.

إعداد جلسة HFP

يجب أن يستخدم AHAL نوع جلسة ملف تعريف سماعة الرأس بدون استخدام اليدَين (HFP) الجديد لبدء التشغيل أو إيقافه مؤقتًا، على غرار أنواع جلسات BT الأخرى. تتم إدارة حالة البث في النهاية باستخدام IBluetoothAudioProviders مختلفة، يتم تعدادها وإنشاؤها بواسطة فئة Factory استنادًا إلى المسارات المتاحة.

تستخدم حزمة BT مسارًا لإلغاء تحميل الأجهزة كلما أمكن ذلك. تتبع الأولوية في استخدام برامج الترميز أثناء التفاوض الترتيب التالي: يتم تفضيل أجهزة LC3 على برامج LC3، يليها أجهزة mSBC، ثم برامج mSBC، وأخيرًا يتم تفضيل أجهزة CVSD على برامج CVSD.

توضّح مخططات التسلسل التالية بالتفصيل التفاعلات بين AHAL وحزمة BT المطلوبة لضبط حالة البث.

إجراء تخفيف حِمل الأجهزة

توضّح الصورة 1 كيفية تنسيق AHAL وحزمة BT لإنشاء مسار بيانات مباشر للأجهزة من أجل صوت SCO:

hw-offload-procedure

الشكل 1: إجراء تخفيف حِمل الأجهزة

إجراء مسار بيانات البرامج

توضّح الصورة 2 عملية معالجة البيانات الصوتية التي تتطلب معالجة برامج النظام:

sw-data-path

الشكل 2: إجراء مسار بيانات البرامج

إجراء إعادة التفاوض على برنامج الترميز

عندما تتلقّى بوابة الصوت (AG) أمرًا جديدًا لبرنامج ترميز BT متاح (AT+BAC)، تعيد بوابة الصوت بدء إجراء التفاوض على برنامج الترميز. توضّح الصورة 3 إجراء إعادة التفاوض على برنامج الترميز:

codec-renego-process

الشكل 3: إجراء إعادة التفاوض على برنامج الترميز

التأثير على HeadsetStateMachine

تظل آلة حالة سماعة الرأس على مستوى Java (الممثلة بفئة HeadsetStateMachine) بدون تغيير إلى حد كبير باستثناء حالة AUDIO_CONNECTED، التي يتم تشغيلها من خلال أحداث الحزمة الأصلية. ضمن مستوى Java، لم يعُد النظام يبدأ connectAudioNative أو disconnectAudioNative. بدلاً من ذلك، يستجيب النظام لتغييرات حالة الاتصال الصوتي من الحزمة الأصلية. يتم تشغيل هذه التغييرات من خلال أوامر AHAL على IBluetoothAudioProvider أو IBluetoothAudioPort.

التنفيذ

لدمج عملية إعادة بنية إدارة SCO، عدِّل عملية التواصل بين حزمة BT وإطار عمل الصوت.

اتّبِع الخطوات التالية لتنفيذ الميزة:

  1. أبلِغ إطار عمل الصوت بالتغييرات التي تطرأ على BT النشط للمساعدة في الإدارة السليمة لعملية بدء SCO وإيقافه أثناء اتصالات جهاز HFP وللتعامل مع تغييرات الجهاز النشط. استخدِم AudioManager.handleBluetoothActiveDeviceChanged(HfpInfo) لتوفير هذه المعلومات لإطار عمل الصوت.

    conn-hfp

    الشكل 4: ربط جهاز HFP

    يستخدم إطار عمل الصوت معاودة الاتصال AudioManagerAudioDeviceCallback#onAudioDevicesAdded بدلاً من عمليات البث القديمة للإشارة إلى حالة الجهاز الصوتي.

  2. نفِّذ عملية التحكّم في بث AHAL باستخدام setCommunicationDevice(AudioDeviceInfodevice) كنقطة التحكّم الأساسية لبدء اتصال SCO.

    إذا عرضت HfpTransport::StartRequest القيمة BluetoothAudioCtrlAck::PENDING، يجب أن يعيد AHAL محاولة الطلب لأنّ آلة حالة HFP لم يتم إنشاؤها.

حالات الاستخدام

توضّح الأقسام التالية رحلات المستخدم الأساسية (CUJ) النموذجية.

سير مكالمة الاتصالات

تؤدي عملية إعادة بنية إدارة SCO إلى تغيير phoneStateChanged إلى دالة حظر. يؤدي هذا التعديل إلى انتظار الاتصالات لإكمال تنفيذ phoneStateChanged ضمن طريقة BluetoothInCallService.onCallAdded قبل استدعاء واجهة برمجة تطبيقات إطار عمل الصوت لبدء إنشاء SCO.

call-telecom

الشكل 5: الرد على مكالمة أو بدءها من خلال الاتصالات

سير مكالمة نقل الصوت عبر بروتوكول الإنترنت

يبدأ إطار عمل الصوت العملية من خلال استدعاء طريقة BluetoothHeadset.startScoUsingVirtualVoiceCall. بعد أن تقدّم حزمة BT نتيجة لإطار عمل الصوت، يوجّه إطار العمل AHAL لتنفيذ startStream. توضّح الصورة التالية هذا السير:

call-voip

الشكل 6: الرد على مكالمة أو بدءها من خلال نقل الصوت عبر بروتوكول الإنترنت

التعرُّف على الصوت

بالنسبة إلى التعرّف على الصوت بدون استخدام اليدَين (HF) والتعرّف على الصوت الذي بدأته بوابة الصوت، يجب أن تطلب حزمة BT من إطار عمل الصوت فتح SCO باستخدام AudioManager.setCommunicationDevice. توضّح الصورة التالية ذلك:

voice-recog

الشكل 7: بدء SCO للتعرّف على الصوت

الاتصال الصوتي

تبدأ حزمة BT اتصال SCO من خلال طلب إطار عمل الصوت باستخدام AudioManager.setCommunicationDevice(AudioDeviceInfo) أثناء التعرّف على الصوت. إذا كانت هناك مكالمة نشطة، تطلب حزمة BT بدلاً من ذلك BluetoothInCallService#requestBluetoothAudio من حزمة الاتصالات.

توضّح الصورة التالية هذه العملية:

audio-conn

الشكل 8: الاتصال الصوتي

التحقق من صحة الإجراءات واختبارها

للتحقّق من أنّ الميزة مدمجة بشكل صحيح وتستوفي معايير الجودة، يجب أن يُجري مصنّعو الأجهزة الاختبارات التالية:

  • أداة التحقّق من التوافق مع مجموعة اختبارات التوافق (CTS): استخدِم أداة التحقّق من التوافق مع مجموعة اختبارات التوافق لإجراء اختبار تفاعلي لتوجيه الصوت أثناء المكالمات.
  • مجموعة اختبارات المورّد (VTS): تحقَّق من صحة التفاعلات بين AHAL وBT AHAL باستخدام VTS.

المتطلبات

تخضع هذه الميزة للمتطلبات التالية:

  • AHAL: يتطلب التنفيذ AHAL متوافقًا يتيح مسار إدارة SCO الذي تمت إعادة هيكلته.