Arabalar İçin Uygulama İşlemleri

Sesli kontrol, sürücülerin ellerini direksiyondan veya gözlerini yoldan ayırmadan görevleri yerine getirmelerini sağlar. Araba uygulamaları için Uygulama İşlemleri sayesinde sürücüler, Google Asistan'ı kullanarak bilgi-eğlence sistemlerindeki Android uygulamalarını kontrol edebilir. Örneğin, "Ok Google, ExampleApp'te cadde üzeri park yeri bul" gibi şeyler söyleyebilirler.

Uygulama İşlemleri, önemli nokta (ÖY) araba uygulamalarıyla çalışır. Bu kılavuzda, Uygulama İşlemlerini ÖY uygulamanıza entegre etmeyle ilgili belirli gereksinimler ve sınırlamalar ele alınmaktadır.

Nasıl çalışır?

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

Android capability öğelerini kullanarak uygulamanızda BII'ları desteklediğinizi beyan ediyorsunuz. Uygulamanızı Google Play Console'u kullanarak yüklediğinizde Google, uygulamanızda beyan edilen özellikleri kaydeder ve kullanıcıların Asistan'dan erişebilmelerini sağlar.

Araç teminini gösteren grafik.

  1. Kullanıcı, Asistan'ı tetikler ve belirli bir uygulama için sesli istekte bulunur.
  2. Asistan, isteği önceden eğitilmiş bir modelle (BII) eşleştirir ve BII'nin desteklediği tüm parametreleri çıkarır.
  3. Bu örnekte, Asistan, sorguyu GET_CHARGING_STATION BII ile eşleştirir, "SFO" konum parametresini çıkarır ve konumu, coğrafi koordinatlarına çevirir.
  4. Uygulama, bu BII'nin istek karşılama tanımı üzerinden tetiklenir.
  5. Uygulama, sürücünün bilgi-eğlence sisteminde şarj istasyonu seçeneklerini göstererek sipariş karşılama işlemini işler.

Sınırlamalar

Uygulama İşlemlerinin araba uygulamalarında aşağıdaki sınırlamalar geçerlidir:

Şartlar

Araba uygulamanızı Uygulama İşlemleri'ne hazırlamak için aşağıdaki adımları uygulayın:

Niyetinizi ve isteğinizi belirleyin

Uygulama İşlemleri ile araba uygulamasını sesli olarak etkinleştirmenin ilk adımı, uygulamanızın hangi kullanıcı sesli komutlarını veya amaçları desteklediğini belirlemektir. Daha sonra, uygulamanızın isteği nasıl karşılaması gerektiğini belirtmek amacıyla her amaç için bir istek karşılama tanımlarsınız.

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

    Uygulama İşlemleri, "Ok Google" dediğinde bir kullanıcının sesli komutlarını anlayıp yorumlayabilen, yerleşik intent (BII) olarak adlandırılan önceden eğitilmiş ses modelleri sağlar. Sesli isteklere yanıt vermek için uygulamanızın desteklediği BII'leri Asistan'a bildirmeniz yeterlidir. Örneğin, uygulamanızın otopark 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çinGET_CHARGING_STATION BII'yi uygulayabilirsiniz.

  • Uygulamanız her amaçları nasıl yerine getirmelidir?

    Uygulamanız, kendisini uygun ekrana başlatarak sesli isteği yerine getirir. Uygulama İşlemleri, kullanıcı isteğinden alınan parametrelerle istek karşılama uygulamanızı sağlar. Böylece, yanıtınızı kullanıcının ihtiyaçlarına göre özelleştirebilirsiniz.

Uygulama İşlemlerini entegre edin

Sipariş karşılama stratejinizi belirledikten sonra, araba uygulamanızı sesli olarak etkinleştirmek için şu adımları uygulayın:

  1. AndroidManifest.xml ana etkinliğinizi açın ve Android kısayollarını desteklediğinizi belirtin. Uygulamanızın desteklediği BBI'leri Asistan'a bildirmek için capability kısayol öğelerini kullanırsınız. Daha fazla bilgi için Özellik ekleme bölümüne bakın.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. Daha sonra, AndroidManifest.xml için bir <intent-filter> öğesi ekleyin. Bu şekilde Asistan, uygulamanızın içeriğine bağlanmak için derin bağlantıları kullanabilir.

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

    • Android Automotive OS için uygulamanızın CarAppService oturumu Asistan'ı tetikler. Bir oturumun derin bağlantınızı tetiklemesine izin vermek için AndroidManifest.xml <activity> öğesinde <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 res/xml dizini için bir shortcuts.xml dosyası yoksa yeni bir dizin oluşturun. Uygulama İşlemlerinin Android kısayollarını nasıl kullandığı hakkında bilgi için shortcuts.xml oluşturma bölümüne bakın.

    shortcuts.xml içinde, seçtiğiniz BII için bir capability uygulayın. Daha sonra, uygulama karşılamayı 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 İşlemleri karşılamayı işlemek için araba uygulamanızın Session() mantığını güncelleyin. Aşağıdaki örnekler, Session.onCreateScreen() ve Session.onNewIntent() için intent işlemeyi göstermektedir.

    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 sağlar. Bu araçlar hakkında bilgi edinmek ve ses özellikli araba uygulamanızı Play Store'da nasıl yayınlayacağınıza dair ayrıntılar için Uygulama İşlemlerine genel bakış sayfasını ziyaret edin.