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.
- Kullanıcı, Asistan'ı tetikler ve belirli bir uygulama için sesli istekte bulunur.
- Asistan, isteği önceden eğitilmiş bir modelle (BII) eşleştirir ve BII'nin desteklediği tüm parametreleri çıkarır.
- Bu örnekte, Asistan, sorguyu
GET_CHARGING_STATION
BII ile eşleştirir, "SFO" konum parametresini çıkarır ve konumu, coğrafi koordinatlarına çevirir. - Uygulama, bu BII'nin istek karşılama tanımı üzerinden tetiklenir.
- 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:
Araba Uygulama İşlemleri, Android derin bağlantıları kullanılarak yerine getirilmelidir. Uygulama İşlemleri istek karşılamaları hakkında bilgi için Yerleşik amaçlar için istek karşılama ayrıntıları sağlama bölümüne bakın.
Araba uygulamaları yalnızca aşağıdaki BII'leri destekler:
- Otopark -
GET_PARKING_FACILITY
- Şarj ediliyor -
GET_CHARGING_STATION
- Otopark -
Şartlar
Araba uygulamanızı Uygulama İşlemleri'ne hazırlamak için aşağıdaki adımları uygulayın:
- Uygulama İşlemleri için genel Android uygulaması gereksinimlerini karşılama.
- Araba Uygulama Kitaplığı bağımlılığını dahil edin. Ayrıntılar için Bağımlılıkları bildirme bölümünü inceleyin.
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:
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çincapability
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" />
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çinAndroidManifest.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>
Uygulamanızın
res/xml
dizini için birshortcuts.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 bircapability
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>
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()
veSession.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.