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

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

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

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

  • CarMediaApp.apk
  • TestMediaApp.apk

آلية العمل

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

التنفيذ لتلبية الطلبات الجديدة والإضافات الجديدة:

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

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

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

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

يتم عرض 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

في هذا النشاط، يسترجع تطبيق "الوسائط" المعلومات من الرابط ويُنشئ نية للوسائط.

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

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

لاستخدام هذه الميزة، على المطوّرين تثبيت أحدث إصدار من ملف تعريف الارتباط Media لتفعيل إجراء Intent‏، ACTION_MEDIA_TEMPLATE_V2. يتم تضمين MediaIntentExtras.java الإجراء وعناصر 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 الحالية أو تلك المحدّدة باستخدام 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 في هذا الطلب، يعالج التنفيذ الحالي معرّف الوسائط أولاً، ولا يبدأ الوسائط تنفيذ طلب البحث إلا عندما يكون معرّف الوسائط خاليًا.

الاختبار

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

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