Sistem bileşenleri ve kullanıcı akışları

Aşağıdaki şemada, Medya ile etkileşim kuran bileşenler gösterilmektedir:

Sistem bileşenleri

Şekil 1. Sistem bileşenleri

Bu şekildeki öğeler tabloda açıklanmıştır:

Bileşen Açıklama
Ana Ekran Arabanın kullanıcı arayüzünde, oynatılan ve kontrol eden diğer yüzeyleri temsil eder. medya AOSP'de bu, sistem başlatıldığında görüntülenen ana ekrandır. Bu ekrandan Kullanıcılar oynatılan medya öğesinin ayrıntılarını görüntüleyebilir ve sınırlı sayıda standart ve özel işlemler (örneğin, Oynat ve Duraklat).
Sistem kullanıcı arayüzü Şuraya gitme gibi genel kullanıcı arayüzünde gezinme seçeneklerini içeren işlevler sağlar. Medya.
Asistanlar Android, farklı sesli asistan uygulamalarının sistemle etkileşim kurabileceği mekanizmalar sağlar. Bu uygulamalar arka planda Medya Kaynakları ile etkileşim kurabilir (örneğin, bir sesli komutla oluşturulan şarkısı) veya ön plandaki Medya'ya gidin (örneğin, sesli yardım uygulamasına belirli bir Medya Kaynağının kullanıcı arayüzünü görüntülemesi istendiğinde).
Uygulama Başlatıcı Medya Kaynakları dahil tüm Android uygulamaları Uygulama Başlatıcı'da başlatılır. Medya kendi Medya Kaynağı seçicisini sunar ve bir başlangıç noktası olabilir.
Google Play Store GAS kullanılırken, kullanıcılar yeni uygulamaları Google Play'de Android cihaz. Medya için, uygulamalar yüklendikten sonra kullanıcılar Medya'ya yönlendirilir ve oturum açma işlemini tamamlamak veya uygulamayla etkileşime girmek için
Medya Oturumu Yöneticisi Tüm medya kaynaklarından gelen medya oturumlarını izleyen ve kontrol eden Android sistem hizmetidir. Google Bir Medya Kaynağının ön plan medyası haline geldiğini algılayacak mekanizmalar sunar kaynak. Şu anda oynatılan medya kaynağını görüntüleyen medya ve tüm diğer uygulamalar ( ana ekranı) kullanıyorsanız, bu etkinlikleri algılamak ve kullanıcı arayüzünü güncellemek için Medya Oturumu Yöneticisi'ni buna göre hazırlar. Medya Kaynakları, Medya Oturumu Yöneticisi ile Medya Session API.
Radyo Radyo donanımıyla etkileşim için özel bir uygulama. Radyo için yapılan aramalar son belirlenen istasyonları hızlıca seçebilir ve radyo bantları arasında geçiş yapabilirsiniz. Hem Radyo hem de Medya tarafından paylaşılan kullanıcı arayüzü bileşenleri, kullanıcının bu ikisi arasında geçiş yapmasını sağlar paylaşmaya istekli olmalıdır.
Sürücü Distraction Engine Aracın sürüş durumuna göre kullanıcı deneyimi kısıtlamaları uygulamak için kullanılan Android sistem hizmeti araba. Medya kaynakları için oturum açma ve ayarlar kullanıcı deneyimi (ekranın doğrudan bu hizmet, araba kullanırken güvenli olmayan içeriklerin gösterilmemesini sağlar. çalışma durumu. OEM'ler bu eyaletlerin tanımını ve sistemin bu durumlarda tepki verdiğinde (örneğin, bir engelleme ekranı yer paylaşımı görüntüleyerek).

Kullanıcı akışları

Medya uygulaması lansmanı

Medya'yı başlatma işlemi aşağıda görünür.

Medya uygulaması lansmanı

Şekil 2. Medya uygulaması lansmanı

Medya, aşağıdaki implicit kullanılarak başlatılmalıdır. CAR_INTENT_ACTION_MEDIA_TEMPLATE. Bu amaç, aşağıdaki bilgileri ekstra olarak içerebilir:

  • android.car.intent.extra.MEDIA_COMPONENT (isteğe bağlı). Dize fazladan bir reklam biriminin düzleştirilmiş bileşen adını MediaBrowserService medya uygulamasında bulabilirsiniz. Sağlanmazsa Medya görüntülenir şu anda seçili medya uygulaması. Bu amaç şunlardan kullanılır: giriş noktaları:

    • Sistem kullanıcı arayüzü. Medya deneyimine dönmek veya başlangıç yapmak için kullanılır ilk kez kullanıyor olabilirsiniz. Bu durumda, yukarıdaki Amaç, herhangi bir ekstra özellikler eklemeniz gerekir.

    • Ana Ekran, Asistanlar ve Bildirim Merkezi. Kullanıcılar şunları yapabilir: Şu anda seçili olan medya uygulamasını görüntülemek için Medya'ya gidin. Her durumda implicit Intent (ekstralar olmadan) tetiklenir.

    • Uygulama Başlatıcı. Kullanıcılar, yukarıdaki amaç, Uygulama Başlatıcı'daki CAR_EXTRA_MEDIA_COMPONENT ekstra (ekstra) ifadesini içerir. Medya bunu yeni ve ona bağlanır. Ayrıntılar için aşağıdaki Uygulama bölümüne bakın Launcher'dan Medya'ya entegrasyonu.

Uygulama başlatıcıdan Medya entegrasyonuna

Medya uygulamalarının android.intent.category.LAUNCHER kategorisi. Sonuç olarak Uygulama Başlatıcı (veya eşdeğeri) medya kaynağı entegrasyonunu ele almak için özel bir mantık uygulamalıdır:

  • Uygulama Başlatıcı, uygulanan paketler için sistemi taramalıdır MediaBrowserService.SERVICE_INTERFACE Uygulama Başlatıcı, bu paketler için diğer uygulamaları getirmek için kullanılana benzer bir hizmet simgesi yardımcı olur.

  • Ardından Uygulama Başlatıcı, bu paketleri android.intent.category.LAUNCHER etkinlik. Bir uygulama MediaBrowserService uygulaması ve başlatıcı etkinliği varsa hizmet, önceliklendirme.

    Bu yazının hazırlandığı an itibarıyla hiçbir medya kaynağı uygulaması başlatıcı etkinliği sağlayamaz.

  • Bu mantığın bir örneğini şu adresteki AOSP kodunda bulabilirsiniz: AppLauncherUtils#getAllLauncherApps()

Oturum açma akışı ve yapılandırma seçenekleri

Medya uygulamaları, araç için optimize edilmiş Ayarlar etkinliği içerebilir. Bu tür bir etkinlik, Android Media API'leri tarafından ele alınmayan kullanıcı akışlarını uygulamak için kullanılır, örneğin:

  • Oturum açma
  • Oturumu kapat
  • Hesaplar arasında geçiş
  • Kullanıcının giriş yapmış olduğu ekran (varsa)
  • Hizmet yapılandırması

Oturum açma akışı

Şekil 3. Oturum açma akışı

Bu Ayarlar etkinliği, medya uygulaması tarafından aşağıdaki intent filtresiyle tanımlanır:

<activity android:name=".AppSettingsActivity"
          android:exported="true
          android:theme="@style/SettingsActivity"
           android:label="@string/app_settings_activity_title">
   <intent-filter>
       <action android:name="android.intent.action.APPLICATION_PREFERENCES"/>
   </intent-filter>
</activity>

Medya şu mantığı uygulamalıdır:

  • Seçili durumdaki medya uygulamasının Intent Filtresi.

  • Öyleyse kullanıcının etkinliğe gitmesine izin verin.

  • Araba Kullanıcı Deneyimi Kısıtlamaları yürürlükteyse (örneğin, araba hareket ediyorsa) bu ek bütçe. Devre dışı bırakılacak Ayarlar etkinliği, Sürücü İçin Optimize Edilmiş bir kullanıcı arayüzü olmadığından emin olun.

Hata işleme ve oturum açma zorunluluğu

Medya, Android Media Session API'si aracılığıyla medya uygulamalarıyla etkileşimde bulunur. Bunun bir parçası olarak API'deyken, Medya PlaybackState nesnesini ifade eder.

Oturum açma işlemi, medya uygulaması değiştiğinde başlar PlaybackState - STATE_ERROR, Belirli bir hata kodu dahil (aşağıdaki ayrıntılara bakın). Bu Medya, hata açıklamasını ve bir oturum açma etkinliğine gitmek için uygun maliyeti görüntüler medya uygulaması tarafından uygulandı.

Aynı akış, uygulamalar tarafından diğer hata durumlarını (örneğin, sunucu bağlantı hatası).

Hata işleme

4.Şekil Hata işleme

Normal PlaybackState hata işleme kapsamında, medya aşağıdaki girişi kontrol etmelidir.

  • PlaybackState hata kodu şuna eşit: PlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED. Bu, medya uygulamasının çalışmaya devam etmesi için oturum açılması gerekiyor. Diğer hata kodları Bu, diğer hata durumu türlerini belirtir.

  • PlaybackState hata mesajı ( PlaybackStateCompat.Builder#setErrorMessage yöntemi) birlikte kullanıldığında, okunabilir açıklama (örneğin, "Oturum açmadınız."). Bu mesaj ve dikkat dağıtıcı unsurlara göre optimize edilmiş olmalıdır.

  • İsteğe bağlı olarak, PlaybackState aşağıdaki ekstraları içerebilir (medya tarafından ayarlanır) PlaybackStateCompat.Builder#setExtras özellikli uygulamalar yöntemini) kullanın.

    • android.media.extras.ERROR_RESOLUTION_ACTION_LABEL Şu dizeye ayarlanır: başlatmak için kullanıcının dokunduğu düğmede görüntülenecek, okunabilir mesajı içerir. hoş geldiniz.

    • android.media.extras.ERROR_RESOLUTION_ACTION_INTENT Şununla ayarla: PendingIntent olacak Kullanıcı yukarıda bahsedilen düğmeyi tıkladığında tetiklenir. Bu PendingIntent. aynı medya uygulaması tarafından uygulanan özel bir oturum açma etkinliğine işaret eder.

  • PlaybackState durumu şuna eşittir: STATE_ERROR Bu, oturum açma tamamlanana kadar başka bir işlemin yapılamayacağını gösterir.