يوضّح القسم التالي كيفية دمج واجهة مستخدم تطبيق "الراديو" مع تطبيق "الموسيقى" لتزويد المستخدمين بتجربة سلسة تتيح لهم التفاعل مع مصادر الوسائط والراديو كما لو كانا تطبيقًا واحدًا.
تجربة المستخدم في تبديل مصدر الوسائط
يوضّح المخطط التالي كيفية تنفيذ كل من تطبيق "الراديو" وتطبيق "الموسيقى" لتجربة المستخدم في تبديل التطبيقات في التنفيذ المرجعي.

الشكل 1: تجربة المستخدم في تبديل مصدر الوسائط
لتوفير انتقال سلس بين تطبيق "الراديو" والتطبيقات الأخرى في تطبيق "الموسيقى"، تحدّد مكتبة car-media-common أغراض Android التي يمكن استخدامها لتشغيل أداة اختيار مصدر الوسائط. في مشروع Android مفتوح المصدر (AOSP)، يتم تنفيذ أداة الاختيار هذه في مشغّل التطبيقات، ما يعرض واجهة المستخدم نفسها لتشغيل التطبيقات، ولكن تتم فلترتها لعرض مصادر الوسائط فقط.
يمكن لمصنّعي المعدات الأصلية اختيار استخدام التنفيذ الحالي لمشغّل التطبيقات كما هو، أو تنفيذ أداة اختيار مخصّصة لمصدر الوسائط.
يمكن أن تعمل أداة الاختيار في وضعَين:
- التجربة العادية: بعد استخدام أداة الاختيار، يتم عرض المصدر المحدّد في تطبيق "الموسيقى" ليتمكّن المستخدم من تصفّح محتواه.
- أداة تبديل: يتم استخدام أداة اختيار لتبديل المصادر، ولكن لا يتم عرض الوسائط للمستخدم. وينطبق ذلك على رمز "أداة الاختيار" في الصفحة الرئيسية. بعد اختيار مصدر، يتم عرض الشاشة السابقة الأخيرة للمستخدم (في هذه الحالة، الصفحة الرئيسية).
يمكن الحصول على الغرض المستخدَم للتبديل بين مصادر الوسائط من طريقة MediaSource#getSourceSelectorIntent()، التي تقبل قيمة منطقية popup تعرض غرضًا لتشغيل كل من التجارب الموضّحة أعلاه.
يتم تحديد الأغراض الفعلية في packages/apps/Car/libs/car-media-common/res/values/config.xml. لتخصيص هذا الإعداد، استخدِم عمليات التراكب في وقت الإنشاء.
استبدال تطبيق "الراديو"
بما أنّ تطبيق "الراديو" ينفّذ ميزة "تصفّح الوسائط" و"جلسة الوسائط"، يتم عرض تطبيق "الراديو" في مشغّل التطبيقات. لمنع تشغيل تطبيق "الموسيقى" عندما ينقر المستخدم على الرمز، يجب توفّر عنصرَين. يجبأن يتوفّر في تطبيق "الراديو" ما يلي::
- نشاط مشغّل.
- يجب أن يتم الإعلان عنه كمصدر مخصّص. لإجراء ذلك، أضِف اسم المكوّن إلى الـ
custom_media_packagesمفتاح فيcar-media-common/res/values/config.xml.
القيود المفروضة على تجربة المستخدم أثناء القيادة
يجب أن يلتزم تطبيق "الموسيقى" بجميع القيود المفروضة على تجربة المستخدم لتجنُّب تشتيت الانتباه أثناء القيادة. لإجراء ذلك، يجب أن يستمع تطبيق "الموسيقى" إلى الـ CarUXRestrictionManager وأن ينفّذ جميع سياساته.
- يجب أن يتصل تطبيق "الموسيقى" بمكتبة Car ويحصل على مثيل من CarUXRestrictionManager.
- يجب أن يشترك تطبيق "الموسيقى" في التعديلات على قائمة CarUxRestrictions وأن ينفّذها كما هو موضّح.
- من القيود المهمة بشكل خاص لتطبيق "الموسيقى":
UX_RESTRICTIONS_NO_SETUP. في هذه الحالة، يجب إيقاف عملية تسجيل الدخول.UX_RESTRICTIONS_LIMIT_STRING_LENGTH. يجب ألا يتجاوز طول رسائل الخطأ والنصوص الأخرى التي تقدّمها تطبيقات الوسائط الطول المحدّد.