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.
- Bir kullanıcı Gemini'ı veya Google Asistan'ı tetikleyip belirli bir uygulama için sesli istekte bulunuyor.
- 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.
- Bu örnekte Gemini veya Google Asistan, sorguyu
GET_CHARGING_STATIONBII ile eşleştirir, "SFO" konum parametresini ayıklar ve konumu coğrafi koordinatlarına çevirir. - Uygulama, bu BII için karşılama tanımı aracılığıyla tetiklenir.
- 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:
Araç uygulaması işlemleri, Android derin bağlantıları kullanılarak gerçekleştirilmelidir. Uygulama işlemleriyle ilgili bilgi için Yerleşik amaçlar için karşılama ayrıntıları sağlama başlıklı makaleyi inceleyin.
Araba uygulamaları yalnızca aşağıdaki BII'leri destekler:
- Otopark -
GET_PARKING_FACILITY - Şarj ediliyor -
GET_CHARGING_STATION
- Otopark -
Şartlar
araba uygulamalarında kullanılabilir.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_FACILITYBII'yi uygularsınız. Alternatif olarak, kullanıcıların elektrikli araç şarj istasyonlarını bulmasına yardımcı olmak içinGET_CHARGING_STATIONBII'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:
Ana etkinliğinizi açın
AndroidManifest.xmlve Android kısayolları desteğini bildirin. Uygulamanızın desteklediği BII'leri Gemini veya Google Asistan'a bildirmek içincapabilitykı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" />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
CarAppServiceoturumu, Gemini veya Google Asistan'ı tetikler. Bir oturumun derin bağlantınızı tetiklemesine izin vermek içinAndroidManifest.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>Uygulamanızın
shortcuts.xmldizininderes/xmldosyası 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.xmlbölümünde, seçtiğiniz BII için bircapabilityuygulayı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>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 örneklerdeSession.onCreateScreen()veSession.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.