يمكنك توفير تطبيقك للمركبات التي تعمل بنظام التشغيل 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 السابقة.
يوضّح الرسم البياني التالي كيفية تجميع هذه المكوّنات في تطبيق نموذجي.
لمزيد من المعلومات، اطّلِع على مكوّنات التشغيل.
تنفيذ MediaLibraryService
وMediaLibrarySession
يوفّر MediaLibraryService
واجهة برمجة تطبيقات موحّدة لعرض مكتبة الوسائط والسماح بالوصول إليها.
يكون ذلك مطلوبًا عند إضافة ميزة التوافق مع نظام التشغيل Android Auto أو Android
Automotive إلى تطبيق الوسائط، لأنّ هذه الأنظمة الأساسية توفّر واجهة مستخدم مناسبة للسائقين
لمكتبة الوسائط. لمزيد من المعلومات عن تنفيذ
MediaLibraryService
واستخدامه، يُرجى الاطّلاع على مقالة
عرض المحتوى باستخدام MediaLibraryService.
لاستخدام عناصر التحكّم في التشغيل، استخدِم جلسة وسائط. توفّر واجهة برمجة التطبيقات MediaSession
طريقة عالمية للتفاعل مع مشغّل صوت أو فيديو. تتضمّن مكتبة Media3 في JetpackMediaLibrarySession
، وهي واجهة برمجة تطبيقات توفّر 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، مثل البيان، متطلبات خاصة بالنظام الأساسي. أنشئ وحدة يمكنها فصل رمز هذه المكوّنات عن الرموز البرمجية الأخرى في مشروعك، مثل الرمز البرمجي المستخدَم في تطبيقك المتوافق مع الأجهزة الجوّالة.
اتّبِع الخطوات التالية لإضافة وحدة سيارات إلى مشروعك:
- في Android Studio، انقر على ملف > جديد > وحدة جديدة.
- اختَر وحدة السيارات، ثم انقر على التالي.
- أدخِل اسم تطبيق/مكتبة. هذا هو الاسم الذي يظهر للمستخدمين عند تثبيت تطبيقك على نظام التشغيل Android Automotive.
- أدخِل اسم الوحدة.
- عدِّل اسم الحزمة ليطابق اسم تطبيقك.
اختَر المستوى 28 من واجهة برمجة التطبيقات: Android 9.0 (Pie) الحد الأدنى لحزمة تطوير البرامج (SDK)، ثم انقر على التالي.
تعمل جميع السيارات المتوافقة مع نظام التشغيل Android Automotive بنظام التشغيل Android 9 (المستوى 28 من واجهة برمجة التطبيقات) أو إصدار أحدث، لذا يؤدي اختيار هذه القيمة إلى استهداف جميع السيارات المتوافقة.
اختَر ما مِن نشاط، ثم انقر على إنهاء.
بعد إنشاء الوحدة في 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"/>