دمج روابط لصفحات في التطبيقات المخصّصة للوسائط

يهدف هذا المستند إلى توضيح كيفية إضافة مطوّري تطبيقات الجهات الخارجية (3P) روابط لصفحات معيّنة في تطبيقات الوسائط على نظام التشغيل Android Automotive. تتيح لك الروابط لصفحات معيّنة في التطبيق للوسائط فتح تطبيقات الوسائط على نظام التشغيل Android Automotive OS من خلال روابط لصفحات معيّنة في التطبيق بالطريقة نفسها كما هو الحال على جهاز جوّال.

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

للحصول على أحدث إصدار متوافق، اطّلِع على أحدث عناصر الإنشاء.

  • CarMediaApp.apk
  • TestMediaApp.apk

آلية العمل

عند فتح رابط عميق على نظام التشغيل Android Automotive ‏(AAOS)، يتم فتح تطبيق موسيقى الذي يتعامل مع المخطط المحدد. بعد ذلك، يفكّ تطبيق الوسائط ترميز عنوان URL، وينشئ عنصر intent من نوع Media يتضمّن المعلومات الواردة في هذا الرابط، ثم يستخدم عنصر intent هذا لفتح شاشة الوسائط.

في ما يلي عملية التنفيذ التي تتيح استخدام النوايا والبيانات الإضافية الجديدة:

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

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

يتحمّل المطوّرون التابعون لجهات خارجية مسؤولية تعديل تطبيقاتهم لكي تتمكّن من الاستجابة لطلبات URI على الويب وإرسال المعلومات اللازمة إلى Media من خلال طلب.

متطلبات التطبيقات التابعة لجهات خارجية

يتم تقديم TmaTrampolineActivity في تطبيق TestMediaApp كمثال.

الخطوة 1

يجب أن يكون لدى المطوّرين نشاط مشابه TmaTrampolineActivity في TestMediaApp. لإنشاء رابط عميق، يجب أن يتضمّن هذا النشاط intent filter في ملف البيان. يجب أن يتضمّن فلتر الأهداف هذا جميع عناوين URL التي سيتم التعامل معها كما هو موضّح في إضافة فلاتر الأهداف للروابط الواردة.

نقترح أن يتضمّن intent filter المخططات والمضيفين الذين يستخدمهم تطبيق إصدار الهاتف للتأكّد من أنّ الروابط لصفحات في التطبيق تعمل على جميع المنصات.

<activity android:name=".automotive.TmaTrampolineActivity"
                  android:exported="true">
            <intent-filter android:label="TmaTrampolineActivity_label">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="app"
                      android:host="com.android.car.media.testmediaapp"/>
            </intent-filter>
        </activity>

الخطوة 2

في هذا النشاط، يسترد تطبيق موسيقى المعلومات من الرابط وينشئ intent إلى الوسائط.

تتيح "الوسائط" وظيفتَين. تتمثل الوظيفة الأولى في فتح عنصر وسائط باستخدام عنصر وسائط معيّن، وتتمثل الوظيفة الثانية في عرض نتائج طلب بحث. يجب تضمين معرّف عنصر الوسائط أو سلسلة طلب البحث في بيانات Intent الإضافية.

معلومات حول النية

لاستخدام هذه الميزة، على المطوّرين تثبيت أحدث إصدار من تطبيق "الوسائط" الذي يتيح تنفيذ إجراء Intent، ACTION_MEDIA_TEMPLATE_V2. يتم تضمين إجراء Intent وإضافات Intent التالية في الفئة MediaIntentExtras.java. يمكن إضافة هذه الميزات الإضافية إلى النية.

اسم الحقل الإضافي القيمة الوصف
EXTRA_KEY_MEDIA_COMPONENT سلسلة componentName المفتاح المستخدَم كحقل إضافي للسلسلة مع ACTION_MEDIA_TEMPLATE_V2 لتحديد MediaBrowserService الذي يريد المستخدم بدء تشغيل الوسائط عليه. في حال عدم تحديد مصدر، سيتم فتح مصدر الوسائط النشط.
EXTRA_KEY_MEDIA_ID معرّف الوسائط المفتاح المستخدَم كحقل إضافي للسلسلة مع ACTION_MEDIA_TEMPLATE_V2 لتحديد عنصر الوسائط الذي يجب عرضه في طريقة العرض تصفّح يجب أن تتطابق مع المعرّفات المستخدَمة في واجهة برمجة التطبيقات MediaBrowserServiceCompat.
EXTRA_KEY_SEARCH_QUERY طلب البحث مفتاح مستخدَم كحقل إضافي من نوع سلسلة مع ACTION_MEDIA_TEMPLATE_V2 لتحديد طلب البحث الذي سيتم إرساله إما إلى MediaBrowserService الحالي أو إلى MediaBrowserService المحدّد باستخدام EXTRA_KEY_MEDIA_COMPONENT
EXTRA_KEY_SEARCH_ACTION

عدد صحيح:

  • ‫0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
مفتاح يُستخدَم كحقل إضافي من النوع int مع ACTION_MEDIA_TEMPLATE_V2 لتحديد الإجراء الذي سيتم تنفيذه على الوسائط بعد تحميل طلب البحث.

تكون القيمة إما EXTRA_VALUE_NO_SEARCH_ACTION أو EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. يجب استخدام هذه البيانات الإضافية مع EXTRA_KEY_SEARCH_QUERY فقط.

في حال عدم تحديد هذه السمة الإضافية، لن يتم اتخاذ أي إجراء آخر بعد تحميل نتائج البحث.

حالات خاصة

إذا تمت إضافة عدة بيانات إضافية إلى الغرض معًا، مثل تضمين كل من EXTRA_KEY_MEDIA_ID وEXTRA_KEY_SEARCH_QUERY في هذا الغرض، ستتعامل عملية التنفيذ الحالية مع معرّف الوسائط أولاً، ولن يتم تشغيل طلب البحث بواسطة "وسائط Google" إلا عندما يكون معرّف الوسائط فارغًا.

اختبار

بعد اكتمال عملية دمج تطبيق الوسائط التابع لجهة خارجية، استخدِم أمر adb لإرسال رابط لصفحة معيّنة. يتم فتح الوسائط مع المعلومات المطلوبة. على سبيل المثال، هذا الأمر الخاص بـ TestMediaApp:

adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"