يعمل التحكم الصوتي على تمكين السائقين من أداء المهام بدون رفع يدهم عن عجلة القيادة أو إبعاد أعينهم عن الطريق. باستخدام "المهام في التطبيقات" مع تطبيقات السيارات، يمكن للسائقين استخدام "مساعد Google" للتحكّم في تطبيقات Android على نظام الترفيه والمعلومات، وذلك من خلال قول عبارات مثل "Ok Google، أريد البحث عن موقف سيارات في الشارع على ExampleApp".
تعمل "مهام التطبيقات" مع تطبيقات السيارات في نقاط الاهتمام. يتناول هذا الدليل المتطلبات والقيود المحددة لدمج "إجراءات التطبيقات" في تطبيق نقطة الاهتمام.
طريقة العمل
تؤدّي "المهام في التطبيقات" إلى توسيع نطاق الوظائف داخل التطبيق لتشمل "مساعد Google"، ما يتيح للمستخدمين
الوصول إلى ميزات التطبيق باستخدام أصواتهم. عندما يستدعي المستخدم "مهمة في التطبيق"،
يطابق "مساعد Google" طلب البحث بهدف مضمّن (BII) تم تعريفه في مورد shortcuts.xml
الخاص بتطبيقك،
ويشغِّل التطبيق على الشاشة المطلوبة.
تشير إلى أنّ تطبيقك يتيح استخدام عناصر BII في تطبيقك باستخدام عناصر capability
في Android.
عند تحميل تطبيقك باستخدام Google Play Console، تُسجِّل Google
الإمكانات الموضَّحة في التطبيق وتوفِّرها للمستخدمين للوصول
من "مساعد Google".
- يشغّل المستخدم "مساعد Google" ويُجري طلبًا صوتيًا لتطبيق محدّد.
- يطابق "مساعد Google" الطلب بنموذج مدرّب مسبقًا (BII) ويستخرج أي معلَمات مستندة إلى النموذج BII.
- في هذا المثال، يطابق "مساعد Google" طلب البحث مع
GET_CHARGING_STATION
BII، ويستخرج مَعلمة الموقع الجغرافي "SFO"، ويترجم الموقع الجغرافي إلى إحداثياته الجغرافية. - يتم تشغيل التطبيق من خلال تعريف التنفيذ لمعيار BII هذا.
- يعالج التطبيق عملية التنفيذ، ويعرض خيارات محطات الشحن في نظام الترفيه والمعلومات الخاص بالسائق.
القيود
تنطبق القيود التالية على عمليات تنفيذ إجراءات التطبيقات على السيارات:
يجب تنفيذ الإجراءات في تطبيقات السيارة باستخدام الروابط لصفحات في التطبيق على أجهزة Android. للحصول على معلومات عن عمليات تنفيذ المهام في التطبيقات، يُرجى الاطّلاع على تقديم تفاصيل التنفيذ للأهداف المضمّنة.
لا تتوافق عمليات تنفيذ السيارات إلا مع مؤشرات BII التالية:
- موقف سيارات -
GET_PARKING_FACILITY
- الشحن -
GET_CHARGING_STATION
- موقف سيارات -
الشروط
أكمل الخطوات التالية لإعداد تطبيق السيارة لتنفيذ إجراءات التطبيقات:
- استيفاء المتطلبات العامة لتنفيذ "المهام في التطبيقات" على Android
- ضمِّن تبعية "مكتبة تطبيقات السيارة". للحصول على التفاصيل، راجِع تعريف التبعيات.
تحديد هدفك ومدى تلبية الطلب
تتمثل الخطوة الأولى لتفعيل ميزة استخدام الصوت لتطبيق سيارة من خلال "إجراءات التطبيقات" في تحديد الأوامر الصوتية للمستخدم أو النية المتوافقة مع تطبيقك. وتقوم بعد ذلك بتحديد تنفيذ لكل هدف لتحديد كيفية تلبية تطبيقك للطلب.
ما هي الأغراض التي يتوافق معها تطبيق السيارة؟
توفّر "المهام في التطبيقات" نماذج صوتية مدرّبة مسبقًا، تُعرف باسم الأغراض المدمجة (BII)، والتي يمكنها فهم وتفسير الأوامر الصوتية للمستخدم عند قوله: "Ok Google". للردّ على الطلبات الصوتية، ما عليك سوى إعلام "مساعد Google" بأنّ BIIS يتوافق مع تطبيقك. على سبيل المثال، إذا كنت تريد أن يساعد تطبيقك في العثور على موقف سيارات، عليك تنفيذ
GET_PARKING_FACILITY
BII. أو يمكنك تنفيذGET_CHARGING_STATION
BII لمساعدة المستخدمين في العثور على محطات شحن السيارات الكهربائية.كيف يجب أن يلبي تطبيقك كل الأهداف؟
يفي تطبيقك بالطلب الصوتي من خلال تشغيله على الشاشة المناسبة. تعمل إجراءات التطبيقات على تنفيذ طلبك باستخدام المَعلمات المستخرَجة من طلب المستخدم، ما يتيح لك تخصيص ردّك وفقًا لاحتياجات المستخدم.
دمج مهام التطبيق
بعد تحديد استراتيجية توصيل الطلبات، اتّبِع الخطوات التالية لتفعيل الصوت لتطبيق السيارة:
افتح نشاطك الرئيسي
AndroidManifest.xml
وأعلن عن دعمك لاختصارات Android. يمكنك استخدام عناصر الاختصارcapability
لإطلاع "مساعد Google" على معلومات BII التي يتوافق معها تطبيقك. ولمزيد من المعلومات، يُرجى الاطّلاع على إضافة الإمكانيات.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
بعد ذلك، أضِف عنصر
<intent-filter>
إلىAndroidManifest.xml
. يتيح ذلك لخدمة "مساعد Google" استخدام روابط لصفحات في التطبيق لربطه بمحتوى التطبيق.بالنسبة إلى تنفيذ Android Auto، يجب استخدام السمة
<intent-filter>
نفسها في التطبيق المتوافق مع الأجهزة الجوّالة.في نظام التشغيل Android Automotive، يشغِّل تطبيقك "مساعد Google" عند تشغيل جلسة
CarAppService
. للسماح لجلسة بتشغيل رابط لصفحة في التطبيق، حدِّد<intent-filter>
في العنصر<activity>
فيAndroidManifest.xml
.
<!-- AndroidManifest.xml --> <activity ... android:name="androidx.car.app.activity.CarAppActivity"> ... <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="YOUR_SCHEME" android:host="YOUR_HOST" /> </intent-filter> </activity>
إذا لم يكن لديك ملف
shortcuts.xml
في دليلres/xml
لتطبيقك، أنشِئ دليلاً جديدًا. للحصول على معلومات حول كيفية استخدام "إجراءات التطبيقات" لاختصارات Android، يمكنك الاطّلاع على إنشاء shortcuts.xml.في
shortcuts.xml
، نفِّذcapability
لثاني أكسيد الكربون الذي اخترته. بعد ذلك، أضِف سمة<intent>
مدمجة لتحديد طريقة تنفيذ التطبيق.<!-- shortcuts.xml --> <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.GET_PARKING_FACILITY"> <intent> <url-template android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}"> <!-- Facility name, e.g. "Googleplex" --> <parameter android:name="parkingFacility.name" android:key="name"/> <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" --> <parameter android:name="parkingFacility.address" android:key="address"/> <!-- Disambiguate the type of service, e.g. "valet" --> <parameter android:name="parkingFacility.disambiguatingDescription" android:key="disambiguatingDescription"/> <!-- Latitude, e.g. "37.3861" --> <parameter android:name="parkingFacility.geo.latitude" android:key="latitude"/> <!-- Longitude, e.g. "-122.084" --> <parameter android:name="parkingFacility.geo.longitude" android:key="longitude"/> </intent> </capability> </shortcuts>
أخيرًا، عليك تعديل منطق
Session()
في تطبيق السيارة للتعامل مع عمليات تنفيذ إجراءات التطبيقات الواردة. توضِّح النماذج التالية طريقة معالجة النية لكلّ منSession.onCreateScreen()
وSession.onNewIntent()
.onCreateScreen()
Kotlin
@Override fun onCreateScreen(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public Screen onCreateScreen(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
onNewIntent()
Kotlin
@Override fun onNewIntent(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public void onNewIntent(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
معاينة تطبيقك واختباره ونشره
توفّر "المهام في التطبيقات" أدوات لمعاينة تطبيقك واختباره. يمكنك الانتقال إلى نظرة عامة على إجراءات التطبيق للحصول على معلومات عن هذه الأداة وتفاصيل حول كيفية نشر تطبيق السيارة المزوّد بالصوت على "متجر Play".