Etkin VIA seçimi şu tarafından yapılır:
ManageAssistActivity
.
Araba Ayarları'nda bulabilirsiniz. Bu akış, PackageInstaller
uygulaması tarafından tetiklenir.
Ayarlar ekranının Varsayılan uygulamalar bölümünde
Şekil 1. Ayarlar ekranındaki varsayılan uygulamalar
Seçilen VIA, sisteme iki şekilde sunulur:
RolesManager
kapsamında sisteme ait hizmetVoiceInteractionManagerService
-AssistUtils
arası dahili API'ya geçelim.
Aday VIA'larının listesine RolesManager
üzerinden ulaşabilirsiniz.
android.app.role.ASSISTANT
rol isimli.
Özel kelime tetikleme
Android, NeverOnHotwordDetector'ı sunar
üzerinde bir soyutlama olarak görünür. Bu sayede, ekip arkadaşlarınızın
düşük enerjinin her zaman açık olması için VoiceInteractionService
cihazını bir ses modeliyle ilişkilendir
ses tanımayı da kullanabilirsiniz. Bu, en yaygın ve iyi bilinen etkileşim akışıdır. Kullanıcının belirli bir zamanda
yeni bir sohbet başlatmak için bir Ses Uygulaması (VA) ile etkileşim kurma istekleri. Sesli görüşme
bu şekilde başlatılan oturumlar SHOW_SOURCE_ASSIST_GESTURE flag
ile tanımlanır.
Şekil 2. Özel kelime tetikleme
Açıklamalar. Sistem hizmetleri açık mavi, VIA bileşenleri ise yeşil renkte görünür.
PTT tetikleme
Bu durum, donanım düğmesine uzun veya kısa basıldığında geçerlidir. AAOS'de PTT, CarInputService hizmetlerinden sorun. Varsayılan uygulamada bu hizmet, Araç HAL'si yoluyla alınan giriş olayları. etkileşiminde, önemli etkinliklere aşağıdaki mantığı uygular:
- Kısa PTT etkinlikleri (
KeyEvent.KEYCODE_VOICE_ASSIST
) şu kişilere yönlendirilir: Yeni bir sesli oturum başlatmak içinVoiceInteractionManagerService
. - Uzun PTT etkinlikleri ilk olarak projeksiyon alıcılarına iletilir (örneğin, Android Auto) veya CarPlay) ya da Bluetooth'a bağlı cihazlara ve son olarak da yerel VIA'ya uygulamasını indirin.
Bu akış kullanılarak başlatılan oturumlar SHOW_SOURCE_PUSH_TO_TALK
ile tanımlanır.
Şekil 3. PTT tetikleme
AAOS'ye donanım sesli kontrol düğmesini entegre etmek için Automotive anahtar girişi entegrasyonuna bakın.
Tap-to-Talk tetiklemesi (veya yazılım düğmesi)
Sesli etkileşimi sistem kullanıcı arayüzünden tetikleme işlemi AssistUtil kullanılarak yapılır. Bu, yalnızca aşağıdaki reklamverenler tarafından kullanılabilecek gizli bir sistem API'sidir: aşağıdakileri sağlayan sistem kullanıcı arayüzü gibi entegre sistem uygulamaları:
- Sesli kontrol oturumları başlatmak için
VoiceInteractionManagerService
ile etkileşim kuruluyor. - Şu anda seçili olan VIA olduğunu belirleyin.
Seçilen VIA uygulamasını dinamik olarak sunmak için sistem kullanıcı arayüzü,
RoleManager
.
ve ROLE_ASSISTANT
için rol sahibiyle ilgili değişiklikleri takip edin.
TTT tetiklemenin nasıl uygulanacağına ilişkin bir örneği CarSystemUI, AssistantButton
içinde bulabilirsiniz.
4.Şekil Dokun ve Konuş özelliğini tetikleme
Sesli yardım İçin Dokundur ve Oku (TTR)
Otomotiv'de, Bildirim Merkezi'nde yayınlanan bildirimler şu şekilde tanımlanır:INBOX
veya INBOX_IN_GROUP
bildirimleri (örneğin, SMS mesajları)
Kullanıcının bildirimleri sesli okumasını sağlayan bir Oynat işlem düğmesi içerir
tarafından seçilen VIA tarafından ve isteğe bağlı olarak sesle yanıt verilebilir.
5. Şekil. Bildirimler
Bu akışın nasıl uygulanacağıyla ilgili daha fazla bilgi için Herkese açık kullanıcı adı mesajlaşma komutlarını kullanın.
VIA'yı araba başlatıcıdan başlatma
Diğer uygulamalarda olduğu gibi VIA'lar, bildiriyorlar. Bu işlemi kabul etmek, uygulama geliştiriciye ve OEM'e bağlıdır. bu etkinliklerin ne yapacağına karar vermek için bu uygulamayı önceden yüklemenizi sağlar.
Önemli. Otomotiv'de sistem dahil tüm etkinlikler
etkinlikleri, sürüş sırasında kullanıcı deneyimi kısıtlamalarına tabidir. İstediğiniz deneyimi sunmak için
araç kullanılırken başlatıcıdan etkinleştirme simgesi kullanılabilir olmalıdır, ya da
izin verilenler listesine ekleyin (OEM iseniz) veya etkinliğe distractionOptimized
ek açıklaması ekleyin
meta verilerdir. Daha fazla bilgi için bkz.
Sürücünün dikkatini dağıtan unsurlarla ilgili kurallar.
TTP ve ses HAL
Eşzamanlı her zaman açık ses ile ilgili güncellenen kuralları incelediğinizden emin olun. Eş zamanlı çekim sırasında kayıt ve ses HAL'si. Bu API'lere erişimin, özel kelimenin performansı üzerinde önemli bir etkisi olabilir açıklandığı şekilde algılama Yanıtlanan kişi özel kelimeler ekleyin.
İzinler
Sistem tarafından ayrıcalıklı izinler verin
VIA için aşağıdakilerden herhangi biri gerekiyorsa ayrıcalıklı izin kullanıcı tarafından verilemez. OEM'lerin, sistem görüntülerine APK'larını önceden yüklemesi ve bu izinleri daha fazla bilgi edindiniz. Görüntüleyin İstek gönder izinleriyle ilgili daha fazla bilgi edinin.
Bunu yapmak için projenize bir izin izin verilenler listesi bağımlılığı ekleyin:
Android.bp
android_app { ... required: ["privapp_allowlist_com.example.myvoicecontrol"], ... }
Sistem ayrıcalığı izin verilenler listesi izin dosyasını yourdata/etc/car
öğesine ekleyin
klasör:
vendor/…/data/etc/car/Android.bp
prebuilt_etc { name:privapp_allowlist_com.example.myvoicecontrol", sub_dir: "permissions", src: "com.example.myvoicecontrol.xml", filename_from_src: true, }
vendor/…/data/etc/car/com.example.myvoicecontrol.xml
<?xml version="1.0" encoding="utf-8"?> <permissions> <privapp-permissions package="com.android.car.voicecontrol"> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> </privapp-permissions> </permissions>
Tehlikeli izinler için ön onaylar
Şurada belirtildiği gibi:
İstek gönder
izinleriyle birlikte, VIA'nın belirli işlevlere erişebilmek için kullanıcı izni olması gerekir. Bunlardan bazıları
izinler, varsayılan VoiceInteractionService
öğesine önceden verilir (bkz.
DefaultPermissionGrantPolicy.java
) tıklayın.
Varsayılan işleyicilere ilişkin izinler hakkında daha fazla bilgi için bkz.
İzinler
yalnızca varsayılan işleyicilerde kullanılır. Ayrıca default-permissions.xml
kullanarak izinleri önceden verebilirsiniz
yapılandırma dosyası. Ayrıntılı bilgi için
izinlerin önceden verilmesiyle ilgili kısıtlamalar için Android'deki Bölüm 9'a bakın.
Uyumluluk Tanımlama Belgesi (CDD).
Önemli. Her durumda, yalnızca varsayılan VIA için bu izinler önceden verilmişti. Sistemde birden fazla VIA önceden yüklenmişse varsayılan olmayan VIA, veya ilk kullanım sırasında yapabilirsiniz.
Dağıtım (güncellemeleri önceden yükleme ve dağıtma)
Önceden yüklenmiş VIA'lar /product/priv-apps
veya
/vendor/priv-apps
bölümler ve klasörler (Bölümlere genel bakış ve
Ürün oluşturun
bölümleri) bulunur.
İkinci örnekte ise, tedarikçi firma bölümünün ayrı olarak güncellenebileceği göz önünde bulundurulduğunda Bu durumda, burada barındırılan uygulamalar @hide sistem API'lerine erişemez. Önceden yüklenmiş uygulamaların konumuna bağlı olarak güncellemeler yapılabilir. OTA olarak (OTA güncellemelerine bakın) veya uygulama üzerinden güncellemelerine bakacağız.
Özelleştirme
Şurada belirtildiği gibi: Otomotivle ilgili kavramlar, Kullanıcı arayüzü/kullanıcı deneyimi tutarlılığı ve özelleştirme, otomotivde diğer form faktörlerinden daha önemlidir. Maksimum birlikte çalışabilirlik için AAOS kullanmak Arabanın kullanıcı arayüzü kitaplığı kesinlikle önerilir. Bu kitaplık, otomotiv sektörüne entegre edilebilen bileşen ve kaynaklar içerir uygulamalar tarafından kullanılmak üzere tasarlanmıştır. Bu şekilde tek bir APK Böylece kullanıcı arayüzü, her otomobil modelinin tasarımına göre özelleştirilebilir.