کنش‌های برنامه برای خودروها

کنترل صوتی به رانندگان امکان می‌دهد بدون برداشتن دست از روی فرمان یا چشم از جاده، کارهایشان را انجام دهند. با «کنش‌های برنامه» برای برنامه‌های خودرو، رانندگان می‌توانند از Gemini یا «دستیار Google» برای کنترل برنامه‌های Android در سیستم اطلاعات سرگرمی خود استفاده کنند و چیزهایی مثل «Ok Google، در ExampleApp پارکینگ کنار خیابان پیدا کن» بگویند.

«کنش‌های برنامه» با برنامه‌های خودرو نقطه موردعلاقه (POI) کار می‌کند. این راهنما الزامات و محدودیت‌های خاص برای ادغام «کنش‌های برنامه» در برنامه «نقطه موردعلاقه» شما را پوشش می‌دهد.

روش کار

«کنش‌های برنامه» عملکرد درون‌برنامه‌ای شما را به Gemini یا «دستیار Google» گسترش می‌دهد و به کاربران امکان می‌دهد بااستفاده از صدایشان به ویژگی‌های برنامه دسترسی پیدا کنند. وقتی کاربر «کنش برنامه» را فراخوانی می‌کند، Gemini یا «دستیار Google» پُرسمان را با قصد ازپیش‌تعریف‌شده (BII) اعلام‌شده در منبع shortcuts.xml برنامه‌تان مطابقت می‌دهد و برنامه‌تان را در صفحه درخواست‌شده راه‌اندازی می‌کند.

بااستفاده از عناصر capability Android، پشتیبانی از «هدف‌های داخلی» را در برنامه‌تان اعلام می‌کنید. وقتی برنامه‌تان را بااستفاده از کنسول Google Play بارگذاری می‌کنید، Google قابلیت‌های اعلام‌شده در برنامه‌تان را ثبت می‌کند و آن‌ها را برای دسترسی کاربران از Gemini یا «دستیار Google» دردسترس قرار می‌دهد.

نموداری که تکمیل خودرو را نشان می‌دهد.

  1. کاربر Gemini یا «دستیار Google» را فعال می‌کند و درخواست صوتی برای برنامه خاصی ارائه می‌دهد.
  2. ‫Gemini یا «دستیار Google» درخواست را با مدل ازپیش آموزش‌دیده (BII) مطابقت می‌دهد و پارامترهای پشتیبانی‌شده توسط BII را استخراج می‌کند.
  3. در این مثال، Gemini یا «دستیار Google» پرسمان را با GET_CHARGING_STATION BII مطابقت می‌دهد، پارامتر مکان «SFO» را استخراج می‌کند، و مکان را به مختصات جغرافیایی آن ترجمه می‌کند.
  4. برنامه ازطریق تعریف برآورده‌سازی آن برای این BII راه‌اندازی می‌شود.
  5. برنامه فرایند تکمیل را پردازش می‌کند و گزینه‌های ایستگاه شارژ را در سیستم اطلاعات سرگرمی راننده نمایش می‌دهد.

محدودیت‌ها

پیاده‌سازی‌های خودرویی «کنش‌های برنامه» محدودیت‌های زیر را دارند:

الزامات

مراحل زیر را برای آماده‌سازی برنامه خودرو برای «کنش‌های برنامه» انجام دهید:

  • الزامات کلی برنامه Android را برای «کنش‌های برنامه» برآورده کنید.
  • وابستگی Car App Library را اضافه کنید. برای جزئیات، اعلام وابستگی‌ها را ببینید.

تعیین هدف و برآورده کردن آن

اولین قدم برای فعال کردن فرمان صوتی در برنامه خودرو با «کنش‌های برنامه» این است که مشخص کنید برنامه شما از کدام فرمان‌های صوتی کاربر یا هدف‌ها پشتیبانی می‌کند. سپس برای هر قصد، یک برآورده‌سازی تعریف می‌کنید تا مشخص کنید برنامه‌تان چگونه باید درخواست را برآورده کند.

  • برنامه خودرو شما از کدام هدف‌ها پشتیبانی می‌کند؟

    «کنش‌های برنامه» مدل‌های گفتاری ازپیش آموزش‌دیده‌ای را ارائه می‌دهد که قصد ازپیش‌تعریف‌شده (BII) نامیده می‌شوند، که می‌توانند فرمان‌های گفتاری کاربر را وقتی می‌گوید «Ok Google» درک و تفسیر کنند. برای پاسخ دادن به درخواست‌های صوتی، کافی است به Gemini یا «دستیار Google» اعلام کنید که برنامه‌تان از کدام هدف‌های داخلی پشتیبانی می‌کند. برای مثال، اگر می‌خواهید برنامه‌تان در پیدا کردن پارکینگ کمک کند، GET_PARKING_FACILITY BII را پیاده‌سازی می‌کنید. یا GET_CHARGING_STATION BII را پیاده‌سازی کنید تا به کاربران کمک کنید ایستگاه‌های شارژ خودرو برقی را پیدا کنند.

  • برنامه شما چگونه باید هر هدف را برآورده کند؟

    برنامه شما با راه‌اندازی خود در صفحه مناسب، درخواست صوتی را برآورده می‌کند. «کنش‌های برنامه» اجرای شما را با پارامترهای استخراج‌شده از درخواست کاربر ارائه می‌دهد و به شما امکان می‌دهد پاسخ خود را با نیازهای کاربر تطبیق دهید.

ادغام کردن «کنش‌های برنامه»

پس‌از تعیین استراتژی برآورده‌سازی، این مراحل را برای فعال کردن فرمان صوتی برنامه خودرو دنبال کنید:

  1. فعالیت اصلی‌تان AndroidManifest.xml را باز کنید و پشتیبانی از میان‌برهای Android را اعلام کنید. از عناصر میان‌بر capability برای اعلام کردن به Gemini یا «دستیار Google» درباره هدف‌های داخلی برنامه که برنامه‌تان پشتیبانی می‌کند استفاده می‌کنید. برای اطلاعات بیشتر، افزودن قابلیت‌ها را ببینید.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. سپس، عنصر <intent-filter> را به AndroidManifest.xml اضافه کنید. این کار به Gemini یا «دستیار Google» امکان می‌دهد از پیوندهای عمیق برای متصل شدن به محتوای برنامه‌تان استفاده کند.

    • برای اجرای Android Auto، <intent-filter> همانند برنامه تلفن همراه شما است.

    • برای «سیستم‌عامل Android Automotive»، جلسه CarAppService برنامه‌تان Gemini یا «دستیار Google» را راه‌اندازی می‌کند. برای اینکه جلسه‌ای بتواند پیوند عمیق شما را راه‌اندازی کند، <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()

    کاتلین

    @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
      ...
     }
    }

    جاوا

    @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()

    کاتلین

    @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
          ...
      }
    }

    جاوا

    @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»، به نمای کلی کنش‌های برنامه مراجعه کنید.