Aşağıdaki şemada, Medya ile etkileşim kuran bileşenler gösterilmektedir:
Ş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.
Ş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 uygulamaMediaBrowserService
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ı
Ş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ı).
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. BuPendingIntent
. 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.