Entegrasyon akışları

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

Ayarlar ekranındaki varsayılan uygulamalar

Şekil 1. Ayarlar ekranındaki varsayılan uygulamalar

Seçilen VIA, sisteme iki şekilde sunulur:

  1. RolesManager kapsamında sisteme ait hizmet
  2. VoiceInteractionManagerService - 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.

Özel kelime tetikleme

Ş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çin VoiceInteractionManagerService.
  • 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.

PTT tetikleme

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

Dokun ve Konuş özelliğini tetikleme

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.

Bildirimler

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.