توسيع نطاق تطبيق الوسائط ليشمل Android للسيارات

أضِف تطبيقك إلى المركبات التي تعمل بنظام التشغيل Android Auto أو Android Automotive. استخدِم بنية تطبيق واحدة تناسب كلتا الحالتَين حتى يتمكّن كل مستخدم من الاستفادة من تطبيقك.

ما هو نظام التشغيل Android للسيارات؟

يمكن أن يوفر تطبيق الوسائط للسيارات طريقة للمستخدمين لربط حياتهم الرقمية بسلاسة بسياراتهم. من خلال إتاحة التطبيقات نفسها المخصّصة للهواتف في السيارات، يمكنك تقديم تجربة أفضل للمستخدم. يمكنك تحقيق ذلك من خلال الدمج مع Android Auto أو نظام التشغيل Android Automotive.

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

Android Auto

يقدّم Android Auto تجربة استخدام تطبيقات مُحسَّنة لقائدي السيارات للمستخدمين الذين لديهم هاتف Android مزوّد بتطبيق Android Auto وسيارة متوافقة أو نظام ستيريو تابع لجهة خارجية. يمكنهم استخدام تطبيقك مباشرةً على شاشة السيارة من خلال ربط هواتفهم. يمكنك تفعيل Android Auto للربط بتطبيق هاتفك من خلال إنشاء خدمات يستخدمها Android Auto لعرض واجهة مُحسَّنة للسائق.

نظام التشغيل Android Automotive

نظام التشغيل Android Automotive هو نظام ترفيه ومعلومات يستند إلى Android ويتم تثبيته في المركبات. نظام السيارة هو جهاز مستقل يعمل بنظام التشغيل Android ومحسّن للقيادة. باستخدام نظام التشغيل Android Automotive، يُثبِّت المستخدمون تطبيقك مباشرةً في السيارة بدلاً من هواتفهم.

فئات التطبيقات المتوافقة

تتيح تطبيقات الوسائط للمستخدمين تصفُّح الموسيقى والراديو والكتب المسموعة وغيرها من المحتوى الموسقي في السيارة وتشغيله. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء تطبيقات تشغيل الصوت للسيارات. يتوفّر أيضًا مزيد من المعلومات في صفحة إنشاء تطبيقات وسائط للسيارات.

تم إنشاء تطبيقات الوسائط باستخدام MediaLibraryService وMediaSession. في نظام التشغيل Android Automotive، يمكنك أيضًا إنشاء شاشات تسجيل الدخول والإعدادات (للاستخدام أثناء الوقوف) باستخدام Views أو Compose.

تتيح تطبيقات الفيديو للمستخدمين مشاهدة فيديوهات البث أثناء ركن السيارة. إنّ الغرض الأساسي من هذه التطبيقات هو عرض الفيديوهات المباشرة. تم إنشاء هذه التطبيقات باستخدام Views أو Compose. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء تطبيقات لتشغيل الفيديوهات على نظام التشغيل Android Automotive. يتوفّر مزيد من المعلومات في مقالة إنشاء تطبيقات فيديو لنظام التشغيل Android Automotive.

إنشاء تطبيقات لتشغيل المحتوى الصوتي في السيارات

يفترض هذا الدليل أنّ لديك تطبيقًا أساسيًا لتشغيل الوسائط. وإذا لم تعثر عليه، انتقِل إلى إنشاء تطبيق أساسي لمشغِّل الوسائط.

يوفّر لك هذا الدليل معلومات حول الإجراءات التي يجب اتّخاذها، بما في ذلك روابط تؤدي إلى مراجع إضافية تتضمّن إرشادات محدّدة.

مكونات التشغيل

يوفّر Media3 العديد من المكونات الرئيسية لحالات استخدام التشغيل. إن الفئات التي تشكل هذه المكونات مألوفة لك إذا كنت قد عملت مع مكتبات وسائط Android السابقة.

يوضّح الرسم البياني التالي كيفية تجميع هذه المكوّنات في تطبيق نموذجي.

إنّ المكوّنات المختلفة لتطبيق الوسائط الذي يستخدم Media3
  تتصل معًا بعدة طرق بسيطة نظرًا إلى مشاركتها للواجهات
   والفئات.
الشكل 1: مكوّنات تطبيق الوسائط

لمزيد من المعلومات، اطّلِع على مكوّنات التشغيل.

تنفيذ MediaLibraryService وMediaLibrarySession

يوفّر MediaLibraryService واجهة برمجة تطبيقات موحّدة لعرض مكتبة الوسائط والسماح بالوصول إليها. يكون ذلك مطلوبًا عند إضافة ميزة التوافق مع نظام التشغيل Android Auto أو Android Automotive إلى تطبيق الوسائط، لأنّ هذه الأنظمة الأساسية توفّر واجهة مستخدم مناسبة للسائقين لمكتبة الوسائط. لمزيد من المعلومات عن تنفيذ MediaLibraryService واستخدامه، يُرجى الاطّلاع على مقالة عرض المحتوى باستخدام MediaLibraryService.

لاستخدام عناصر التحكّم في التشغيل، استخدِم جلسة وسائط. توفّر واجهة برمجة التطبيقات MediaSession طريقة عالمية للتفاعل مع مشغّل صوت أو فيديو. تتضمّن مكتبة Jetpack Media3 MediaLibrarySession، التي تُكمِّل MediaSession لإضافة واجهات برمجة تطبيقات تصفُّح المحتوى.

يتيح ربط جلسة وسائط بجهاز تشغيل إمكانية إعلام التطبيق بتشغيل الوسائط خارجيًا وتلقّي أوامر التشغيل من مصادر خارجية، مثل Android Auto أو نظام التشغيل Android Automotive أو "مساعد Google". لمزيد من المعلومات، يُرجى الاطّلاع على التحكّم في التشغيل والإعلان عنه باستخدام MediaSession واستخدام MediaLibrarySession.

يجب أن تعلن جلسة الوسائط على الأقل عن توفّر تعليمات التحكم التالية في المشغّل:

يصف دليل تفعيل عناصر التحكّم في التشغيل الطرق التي يمكنك من خلالها تخصيص عناصر التحكّم في التشغيل في السيارات.

عندما يتصل Android Auto أو نظام التشغيل Android Automotive بتطبيقك، يطلبان مكتبة محتوى لعرضها، ما يؤدي إلى تنشيط onGetLibraryRoot()طريقة callback. ويمكنك إرجاع عنصر وسائط جذر بسرعة للسماح بالوصول إلى مكتبتك. يتمّ استدعاء onGetChildren() طريقة طلب معاودة الاتصال عندما يحاول Android Auto أو نظام التشغيل Android Automotive تصفّح مستويات أدق من مكتبة المحتوى.

تفرض هذه المنصّات قيودًا إضافية على كيفية تنظيم مكتبة المحتوى. لمعرفة تفاصيل عن تخصيص طريقة عرض مكتبة المحتوى، يُرجى الاطّلاع على دليل إنشاء خدمة متصفّح الوسائط.

الإفصاح عن توافق التطبيق مع Android Auto

استخدِم إدخال البيان التالي للإشارة إلى أنّ تطبيق هاتفك متوافق مع Android Auto:

<application>
    ...
    <meta-data android:name="com.google.android.gms.car.application"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

يشير إدخال البيان هذا إلى ملف XML يوضّح ميزات السيارات التي يتوافق معها تطبيقك. للإشارة إلى أنّه لديك تطبيق وسائط، أضِف ملف XML اسمه automotive_app_desc.xml إلى دليل res/xml/ في مشروعك. يجب أن يتضمّن هذا الملف المحتوى التالي:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

الإفصاح عن توافق التطبيق مع نظام التشغيل Android Automotive

عليك إنشاء وحدة خاصة بالسيارات، لأنّه لا يمكن مشاركة كل عناصر التطبيق مع أحد التطبيقات الخاصة بالسيارات، ذلك لأنّ بعض مكوّنات نظام التشغيل Android Automotive، مثل البيان، لها متطلبات خاصة بالنظام الأساسي. أنشئ وحدة يمكنها فصل رمز هذه المكوّنات عن الرموز البرمجية الأخرى في مشروعك، مثل الرمز البرمجي المستخدَم في تطبيقك المتوافق مع الأجهزة الجوّالة.

اتّبِع الخطوات التالية لإضافة وحدة سيارات إلى مشروعك:

  1. في Android Studio، انقر على ملف > جديد > وحدة جديدة.
  2. اختَر وحدة السيارات، ثم انقر على التالي.
  3. أدخِل اسم التطبيق/المكتبة. هذا هو الاسم الذي يظهر للمستخدمين عند تثبيت تطبيقك على نظام التشغيل Android Automotive.
  4. أدخِل اسم الوحدة.
  5. عدِّل اسم الحزمة ليطابق اسم تطبيقك.
  6. اختَر المستوى 28 من واجهة برمجة التطبيقات: Android 9.0 (Pie) الحد الأدنى لحزمة تطوير البرامج (SDK)، ثم انقر على التالي.

    تعمل جميع السيارات المتوافقة مع نظام التشغيل Android Automotive على نظام التشغيل Android 9 (المستوى 28 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، لذا فإنّ اختيار هذه القيمة يستهدف جميع السيارات المتوافقة.

  7. اختَر ما مِن نشاط، ثم انقر على إنهاء.

بعد إنشاء الوحدة في Android Studio، افتح AndroidManifest.xml في وحدة السيارات الجديدة:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

</manifest>

يحتوي العنصر application على بعض المعلومات العادية عن التطبيق بالإضافة إلى عنصر uses-feature يوضّح توافقه مع نظام التشغيل Android Automotive. لاحظ أنه لا توجد أنشطة تم تعريفها في البيان.

إذا نفَّذت الإعدادات أو أنشطة تسجيل الدخول، يمكنك إضافتها هنا. يشغِّل النظام هذه الأنشطة باستخدام ملف تعريف صريح للنوايا، وهي الأنشطة الوحيدة التي تذكرها في ملف بيان تطبيقك الذي يعمل بنظام التشغيل Android Automotive.

بعد إضافة أي إعدادات أو أنشطة تسجيل دخول، أكمِل ملف البيان من خلال ضبط سمة android:appCategory="audio" في عنصر application وإضافة عناصر uses-feature التالية:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:appCategory="audio"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

    <uses-feature
        android:name="android.hardware.wifi"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.landscape"
        android:required="false" />

</manifest>

إنّ ضبط هذه الميزات صراحةً على required="false" يضمن عدم تعارض تطبيقك مع ميزات الأجهزة المتاحة في الأجهزة التي تعمل بنظام التشغيل Automotive.

استخدِم إدخال البيان التالي للإشارة إلى أنّ تطبيقك متوافق مع نظام التشغيل Android Automotive:

<application>
    ...
    <meta-data android:name="com.android.automotive"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

يشير إدخال البيان هذا إلى ملف XML يفصح عن الإمكانات الخاصة بالسيارات التي يتوافق معها تطبيقك.

للإشارة إلى أنّ لديك تطبيق وسائط، أضِف ملف XML باسم automotive_app_desc.xml إلى دليل res/xml/ في مشروعك. قم بتضمين المحتوى التالي في هذا الملف:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

فلاتر الأهداف

يستخدم نظام التشغيل Android Automotive نوايا صريحة لبدء الأنشطة في تطبيق الوسائط. لا تضمِّن أي أنشطة تحتوي على فلاتر أهداف CATEGORY_LAUNCHER أو ACTION_MAIN في ملف البيان.

تستهدف الأنشطة، مثل النشاط الموضّح في المثال التالي، عادةً هاتفًا أو جهازًا جوّالاً آخر. يجب الإفصاح عن هذه الأنشطة في الوحدة التي تنشئ تطبيق الهاتف، وليس في الوحدة التي تنشئ تطبيق Android Automotive.

<activity android:name=".MyActivity">
<intent-filter>
<!-- You can't use either of these intents for Android Automotive OS -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--
In their place, you can include other intent filters for any activities
that your app needs for Android Automotive OS, such as settings or
sign-in activities.
-->
</intent-filter>
</activity>

خطوات إضافية

بعد أن أصبح لديك تطبيق متوافق مع Android Auto ونظام التشغيل Android Automotive، قد تحتاج إلى اتّخاذ خطوات إضافية لتحسين تطبيقك لاستخدامه بأمان أكبر أثناء القيادة. للحصول على مزيد من الاقتراحات للمساعدة في ضمان تقديم تجربة آمنة وملائمة للمستخدم، يمكنك الاطّلاع على الأدلّة الفنية حول الإجراءات الصوتية وإجراءات الوقاية من تشتيت الانتباه والتعامل مع الأخطاء.

إنشاء تطبيقات لتشغيل الفيديوهات على نظام التشغيل Android Automotive

بما أنّ تطبيقات الفيديو يتم تصنيفها بشكل منفصل عن تطبيقات الوسائط في السيارات، عليك التعرّف على بعض المتطلبات المحدّدة لتطبيقات الفيديو، كما هو موضّح في مقالتَي إنشاء تطبيقات متوقفة لنظام التشغيل Android Automotive وإنشاء تطبيقات فيديو لنظام التشغيل Android Automotive. عليك اتّباع التعليمات التالية.

وضع علامة على تطبيقك كتطبيق فيديو

للإشارة إلى أنّ تطبيقك متوافق مع الفيديو، أضِف ملف XML باسم automotive_app_desc.xml إلى دليل res/xml/ في مشروعك. في هذا الملف، أدرِج المحتوى التالي:

<automotiveApp>
    <uses name="video"/>
</automotiveApp>

بعد ذلك، أضِف العنصر التالي meta-data الذي يشير إلى ملف XML ضمن عنصر application في البيان:

<meta-data android:name="com.android.automotive"
    android:resource="@xml/automotive_app_desc"/>