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

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

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

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

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

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

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

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

محدودیت ها

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

الزامات

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

  • الزامات کلی برنامه Android را برای App Actions برآورده کنید.
  • وابستگی کتابخانه برنامه خودرو را نیز لحاظ کنید. برای جزئیات، به اعلام وابستگی ها مراجعه کنید.

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

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

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

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

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

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

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

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

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

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

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

    • برای سیستم عامل Android Automotive، جلسه 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 برنامه خود ندارید، یک فایل جدید ایجاد کنید. برای اطلاعات در مورد نحوه استفاده App Actions از میانبرهای Android، به ایجاد 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 مراجعه کنید.