مهامّ في التطبيقات للسيارات

يعمل التحكم الصوتي على تمكين السائقين من أداء المهام بدون رفع يدهم عن عجلة القيادة أو إبعاد أعينهم عن الطريق. باستخدام "المهام في التطبيقات" مع تطبيقات السيارات، يمكن للسائقين استخدام "مساعد Google" للتحكّم في تطبيقات Android على نظام الترفيه والمعلومات، وذلك من خلال قول عبارات مثل "Ok Google، أريد البحث عن موقف سيارات في الشارع على ExampleApp".

تعمل "مهام التطبيقات" مع تطبيقات السيارات في نقاط الاهتمام. يتناول هذا الدليل المتطلبات والقيود المحددة لدمج "إجراءات التطبيقات" في تطبيق نقطة الاهتمام.

طريقة العمل

تؤدّي "المهام في التطبيقات" إلى توسيع نطاق الوظائف داخل التطبيق لتشمل "مساعد Google"، ما يتيح للمستخدمين الوصول إلى ميزات التطبيق باستخدام أصواتهم. عندما يستدعي المستخدم "مهمة في التطبيق"، يطابق "مساعد Google" طلب البحث بهدف مضمّن (BII) تم تعريفه في مورد shortcuts.xml الخاص بتطبيقك، ويشغِّل التطبيق على الشاشة المطلوبة.

تشير إلى أنّ تطبيقك يتيح استخدام عناصر BII في تطبيقك باستخدام عناصر capability في Android. عند تحميل تطبيقك باستخدام Google Play Console، تُسجِّل Google الإمكانات الموضَّحة في التطبيق وتوفِّرها للمستخدمين للوصول من "مساعد Google".

رسم بياني يعرض طريقة توفّر السيارات.

  1. يشغّل المستخدم "مساعد Google" ويُجري طلبًا صوتيًا لتطبيق محدّد.
  2. يطابق "مساعد Google" الطلب بنموذج مدرّب مسبقًا (BII) ويستخرج أي معلَمات مستندة إلى النموذج BII.
  3. في هذا المثال، يطابق "مساعد Google" طلب البحث مع GET_CHARGING_STATION BII، ويستخرج مَعلمة الموقع الجغرافي "SFO"، ويترجم الموقع الجغرافي إلى إحداثياته الجغرافية.
  4. يتم تشغيل التطبيق من خلال تعريف التنفيذ لمعيار BII هذا.
  5. يعالج التطبيق عملية التنفيذ، ويعرض خيارات محطات الشحن في نظام الترفيه والمعلومات الخاص بالسائق.

القيود

تنطبق القيود التالية على عمليات تنفيذ إجراءات التطبيقات على السيارات:

الشروط

أكمل الخطوات التالية لإعداد تطبيق السيارة لتنفيذ إجراءات التطبيقات:

  • استيفاء المتطلبات العامة لتنفيذ "المهام في التطبيقات" على Android
  • ضمِّن تبعية "مكتبة تطبيقات السيارة". للحصول على التفاصيل، راجِع تعريف التبعيات.

تحديد هدفك ومدى تلبية الطلب

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

  • ما هي الأغراض التي يتوافق معها تطبيق السيارة؟

    توفّر "المهام في التطبيقات" نماذج صوتية مدرّبة مسبقًا، تُعرف باسم الأغراض المدمجة (BII)، والتي يمكنها فهم وتفسير الأوامر الصوتية للمستخدم عند قوله: "Ok Google". للردّ على الطلبات الصوتية، ما عليك سوى إعلام "مساعد Google" بأنّ BIIS يتوافق مع تطبيقك. على سبيل المثال، إذا كنت تريد أن يساعد تطبيقك في العثور على موقف سيارات، عليك تنفيذ GET_PARKING_FACILITY BII. أو يمكنك تنفيذ GET_CHARGING_STATION BII لمساعدة المستخدمين في العثور على محطات شحن السيارات الكهربائية.

  • كيف يجب أن يلبي تطبيقك كل الأهداف؟

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

دمج مهام التطبيق

بعد تحديد استراتيجية توصيل الطلبات، اتّبِع الخطوات التالية لتفعيل الصوت لتطبيق السيارة:

  1. افتح نشاطك الرئيسي AndroidManifest.xml وأعلن عن دعمك لاختصارات Android. يمكنك استخدام عناصر الاختصار capability لإطلاع "مساعد Google" على معلومات BII التي يتوافق معها تطبيقك. ولمزيد من المعلومات، يُرجى الاطّلاع على إضافة الإمكانيات.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. بعد ذلك، أضِف عنصر <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>
    
  3. إذا لم يكن لديك ملف 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>
    
  4. أخيرًا، عليك تعديل منطق 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".