Arabalar İçin Uygulama İşlemleri

Sesli kontrol, sürücülerin ellerini direksiyondan, gözlerini yoldan ayırmadan görevleri yerine getirmesini sağlar. Araba uygulamaları için uygulama işlemleri sayesinde sürücüler, "Ok Google, ExampleApp'te sokak otoparkı bul" gibi ifadeler söyleyerek bilgi-eğlence sistemlerindeki Android uygulamalarını kontrol etmek için Gemini veya Google Asistan'ı kullanabilir.

Uygulama İşlemleri, önemli yer araba uygulamalarıyla çalışır. Bu kılavuzda, uygulama işlemlerini ÖY uygulamanıza entegre etmeyle ilgili özel koşullar ve sınırlamalar ele alınmaktadır.

İşleyiş şekli

Uygulama İşlemleri, uygulama içi işlevlerinizi Gemini veya Google Asistan'a genişleterek kullanıcıların seslerini kullanarak uygulama özelliklerine erişmelerini sağlar. Bir kullanıcı Uygulama İşlemi çağırdığında Gemini veya Google Asistan, sorguyu uygulamanızın shortcuts.xml kaynağında belirtilen yerleşik bir amaçla (BII) eşleştirir ve uygulamanızı istenen ekranda başlatır.

Android capability öğelerini kullanarak uygulamanızda BII'ler için destek beyan ediyorsunuz. Uygulamanızı Google Play Console'u kullanarak yüklediğinizde Google, uygulamanızda belirtilen özellikleri kaydeder ve kullanıcıların Gemini veya Google Asistan'dan erişebilmesi için kullanılabilir hale getirir.

Araç sipariş karşılama durumunu gösteren grafik.

  1. Bir kullanıcı Gemini'ı veya Google Asistan'ı tetikleyip belirli bir uygulama için sesli istekte bulunuyor.
  2. Gemini veya Google Asistan, isteği önceden eğitilmiş bir modelle (BII) eşleştirir ve BII tarafından desteklenen tüm parametreleri çıkarır.
  3. Bu örnekte Gemini veya Google Asistan, sorguyu GET_CHARGING_STATION BII ile eşleştirir, "SFO" konum parametresini ayıklar ve konumu coğrafi koordinatlarına çevirir.
  4. Uygulama, bu BII için karşılama tanımı aracılığıyla tetiklenir.
  5. Uygulama, sürücünün bilgi-eğlence sisteminde şarj istasyonu seçeneklerini göstererek talebi işler.

Sınırlamalar

Uygulama İşlemleri'nin araba uygulamaları aşağıdaki sınırlamalara tabidir:

Şartlar

Araba uygulamanızı uygulama işlemleri için hazırlamak üzere aşağıdaki adımları uygulayın:

  • Uygulama İşlemleri için genel Android uygulaması şartlarını karşılayın.
  • Araç Uygulaması Kitaplığı bağımlılığını ekleyin. Ayrıntılar için Bağımlılıkları bildirme başlıklı makaleyi inceleyin.

Amacınızı ve karşılamayı belirleme

Uygulama İşlemleri ile bir araba uygulamasında sesli erişimi etkinleştirmenin ilk adımı, uygulamanızın desteklediği kullanıcı sesli komutlarını veya amaçları belirlemektir. Ardından, uygulamanızın isteği nasıl karşılaması gerektiğini belirtmek için her amaç için bir karşılama tanımlarsınız.

  • Araba uygulamanız hangi amaçları destekliyor?

    Uygulama İşlemleri, "Ok Google" diyen kullanıcının sesli komutlarını anlayıp yorumlayabilen, önceden eğitilmiş ses modelleri (yerleşik niyetler) sunar. Sesli isteklere yanıt vermek için uygulamanızın desteklediği BII'leri Gemini veya Google Asistan'a bildirmeniz yeterlidir. Örneğin, uygulamanızın park yeri bulmaya yardımcı olmasını istiyorsanız GET_PARKING_FACILITY BII'yi uygularsınız. Alternatif olarak, kullanıcıların elektrikli araç şarj istasyonlarını bulmasına yardımcı olmak için GET_CHARGING_STATION BII'yi uygulayın.

  • Uygulamanız her bir amacı nasıl karşılamalıdır?

    Uygulamanız, kendisini uygun ekranda başlatarak sesli isteği yerine getirir. Uygulama İşlemleri, kullanıcı isteğinden çıkarılan parametreleri karşılamanıza sağlar. Böylece yanıtınızı kullanıcının ihtiyaçlarına göre uyarlayabilirsiniz.

Uygulama İşlemlerini entegre etme

Karşılama stratejinizi belirledikten sonra araba uygulamanızda sesli komut özelliğini etkinleştirmek için aşağıdaki adımları uygulayın:

  1. Ana etkinliğinizi açın AndroidManifest.xml ve Android kısayolları desteğini bildirin. Uygulamanızın desteklediği BII'leri Gemini veya Google Asistan'a bildirmek için capability kısayol öğelerini kullanırsınız. Daha fazla bilgi için Özellik ekleme başlıklı makaleyi inceleyin.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. Ardından, AndroidManifest.xml öğesine bir <intent-filter> öğesi ekleyin. Bu, Gemini veya Google Asistan'ın uygulamanızın içeriğine bağlanmak için derin bağlantıları kullanmasını sağlar.

    • Android Auto'da sipariş karşılama için <intent-filter>, mobil uygulamanızla aynıdır.

    • Android Automotive OS'te uygulamanızın CarAppService oturumu, Gemini veya Google Asistan'ı tetikler. Bir oturumun derin bağlantınızı tetiklemesine izin vermek için AndroidManifest.xml öğesinin <activity> öğesinde bir <intent-filter> belirtin.

    <!-- 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. Uygulamanızın shortcuts.xml dizininde res/xml dosyası yoksa yeni bir dosya oluşturun. Uygulama İşlemleri'nin Android kısayollarını nasıl kullandığı hakkında bilgi için shortcuts.xml oluşturma başlıklı makaleyi inceleyin.

    shortcuts.xml bölümünde, seçtiğiniz BII için bir capability uygulayın. Ardından, uygulama yerine getirme işlemini tanımlamak için iç içe yerleştirilmiş bir <intent> ekleyin.

    <!-- 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. Son olarak, gelen uygulama işlemleri yerine getirme isteğini işlemek için araba uygulamanızın Session() mantığını güncelleyin. Aşağıdaki örneklerde Session.onCreateScreen() ve Session.onNewIntent() için amaç işleme gösterilmektedir.

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

Uygulamanızı önizleme, test etme ve yayınlama

Uygulama İşlemleri, uygulamanızı önizlemek ve test etmek için araçlar sunar. Bu araçlar hakkında bilgi edinmek ve ses özellikli araba uygulamanızı Play Store'da yayınlama hakkında ayrıntılı bilgi edinmek için Uygulama İşlemleri'ne genel bakış sayfasını ziyaret edin.