يهدف هذا المستند إلى توضيح كيفية إضافة مطوّري تطبيقات تابعين لجهات خارجية (3P) روابط لصفحات في التطبيقات إلى تطبيقات الوسائط على نظام التشغيل Android Automotive OS. تتيح لك الروابط لصفحات في التطبيق الخاصة بالوسائط فتح تطبيقات الوسائط على نظام التشغيل Android Automotive OS من خلال روابط لصفحات في التطبيق بالطريقة نفسها كما هو الحال على جهاز جوّال.
الإصدارات المتوافقة
للحصول على أحدث إصدار متوافق، اطّلِع على أحدث عناصر الإنشاء.
CarMediaApp.apk
TestMediaApp.apk
آلية العمل
عند فتح رابط لصفحة في تطبيق على AAOS، يتم فتح تطبيق الوسائط الذي يتعامل مع المخطط المحدد. بعد ذلك، يفكّ تطبيق الوسائط ترميز عنوان URL، وينشئ عنصر intent من نوع Media يتضمّن المعلومات الواردة في هذا الرابط، ثم يستخدم عنصر intent هذا لفتح شاشة الوسائط.
في ما يلي عملية التنفيذ التي تتيح استخدام النوايا الجديدة والبيانات الإضافية الجديدة:
توفّر هذه السمة تنسيقًا معدَّلاً للأهداف التي يمكن أن يتعامل معها تطبيق "الوسائط"، وذلك للمطوّرين التابعين لجهات خارجية، ما يتيح لهم إرسال المعلومات اللازمة من خلال الهدف إلى تطبيق "الوسائط".
يتعامل هذا التطبيق مع الأهداف من تطبيقات الجهات الخارجية التي تتضمّن عنصر وسائط معيّنًا أو طلب بحث، ثم يفتح صفحة تتضمّن المعلومات المطلوبة في "الوسائط".
يتحمّل المطوّرون التابعون لجهات خارجية مسؤولية تعديل تطبيقاتهم لكي تتمكّن من الاستجابة لطلبات URI على الويب وإرسال المعلومات اللازمة إلى Media من خلال طلب.
متطلبات تطبيقات الجهات الخارجية
يتم تقديم TmaTrampolineActivity
في تطبيق TestMediaApp
كمثال.
الخطوة 1
يجب أن يكون لدى المطوّرين نشاط مشابه TmaTrampolineActivity
في TestMediaApp
. لإنشاء رابط لصفحة معيّنة في التطبيق، يجب أن يتضمّن هذا النشاط فلتر أهداف في البيان. يجب أن يتضمّن فلتر الأهداف هذا جميع عناوين URL التي سيتم التعامل معها
كما هو موضّح في إضافة فلاتر الأهداف للروابط الواردة.
نقترح أن يتضمّن فلتر الأهداف المخططات والمضيفين الذين يستخدمهم تطبيق إصدار الهاتف للتأكّد من أنّ الروابط المؤدية إلى صفحات معيّنة تعمل على جميع المنصات.
<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، 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 | عدد صحيح:
|
مفتاح مستخدَم كحقل إضافي من النوع 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"