اقدامات برنامه برای اتومبیل ها

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

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

چگونه کار می‌کند؟

App Actions قابلیت‌های درون‌برنامه‌ای شما را به Gemini یا دستیار گوگل گسترش می‌دهد و به کاربران این امکان را می‌دهد که با استفاده از صدای خود به ویژگی‌های برنامه دسترسی پیدا کنند. وقتی کاربری یک App Action را فراخوانی می‌کند، Gemini یا دستیار گوگل، عبارت جستجو شده را با یک intent داخلی ( BII ) که در منبع shortcuts.xml برنامه شما اعلام شده است، مطابقت می‌دهد و برنامه شما را در صفحه درخواست شده اجرا می‌کند.

شما با استفاده از عناصر capability اندروید، پشتیبانی از BIIها را در برنامه خود اعلام می‌کنید. وقتی برنامه خود را با استفاده از کنسول Google Play آپلود می‌کنید، Google قابلیت‌های اعلام شده در برنامه شما را ثبت می‌کند و آنها را برای دسترسی کاربران از طریق Gemini یا Google Assistant در دسترس قرار می‌دهد.

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

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

محدودیت‌ها

پیاده‌سازی‌های App Actions در خودرو محدودیت‌های زیر را به همراه دارد:

الزامات

مراحل زیر را برای آماده‌سازی برنامه خودرو خود برای App Actions انجام دهید:

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

نیت و تحقق خواسته‌هایتان را مشخص کنید

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

  • اپلیکیشن ماشین شما از چه اهدافی پشتیبانی می‌کند؟

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

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

    اپلیکیشن شما با اجرای خود در صفحه مناسب، درخواست صوتی را انجام می‌دهد. App Actions با پارامترهای استخراج شده از درخواست کاربر، درخواست شما را برآورده می‌کند و به شما این امکان را می‌دهد که پاسخ خود را متناسب با نیازهای کاربر تنظیم کنید.

ادغام اقدامات برنامه

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

  1. AndroidManifest.xml به activity اصلی خود را باز کنید و پشتیبانی از میانبرهای اندروید را اعلام کنید. شما از عناصر میانبر capability برای اعلام BII هایی که برنامه شما پشتیبانی می‌کند به Gemini یا دستیار گوگل استفاده می‌کنید. برای اطلاعات بیشتر، به افزودن قابلیت‌ها مراجعه کنید.

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

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

    • برای سیستم عامل اندروید اتوموبیل، جلسه CarAppService برنامه شما، Gemini یا دستیار گوگل را فعال می‌کند. برای اینکه به یک جلسه اجازه دهید پیوند عمیق شما را فعال کند، یک <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 برنامه خود ندارید، یک فایل جدید ایجاد کنید. برای اطلاعات بیشتر در مورد نحوه استفاده App Actions از میانبرهای اندروید، به بخش Create shortcuts.xml مراجعه کنید.

    در shortcuts.xml ، یک capability برای BII انتخابی خود پیاده‌سازی کنید. سپس، یک <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() برنامه ماشین خود را به‌روزرسانی کنید تا اجرای App Actions ورودی را مدیریت کند. نمونه‌های زیر، مدیریت intent را برای 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
     ...
    }
    }

پیش‌نمایش، آزمایش و انتشار برنامه شما

App Actions ابزارهایی برای پیش‌نمایش و آزمایش برنامه شما ارائه می‌دهد. برای کسب اطلاعات در مورد این ابزار و جزئیات نحوه انتشار برنامه خودرو با قابلیت فرمان صوتی خود در فروشگاه Play، به نمای کلی App Actions مراجعه کنید.