Il seguente diagramma illustra i componenti che interagiscono con i contenuti multimediali:
Figura 1. Componenti di sistema
Gli elementi di questa figura sono descritti nella tabella:
Componente | Descrizione |
---|---|
Schermata Home | Rappresenta altre sezioni nell'interfaccia utente dell'auto che mostrano e controllano la riproduzione in corso contenuti multimediali. In AOSP, questa è la schermata principale visualizzata all'avvio del sistema. Da questa schermata, gli utenti possono visualizzare i dettagli dell'elemento multimediale in riproduzione ed eseguire un insieme limitato di e azioni personalizzate (ad esempio Riproduzione e Pausa). |
UI di sistema | Fornisce funzionalità che includono opzioni di navigazione globali nell'interfaccia utente, ad esempio per accedere a Contenuti multimediali. |
Assistenti | Android fornisce meccanismi per diverse app di assistente vocale per interagire con il sistema. Queste app possono interagire con le fonti multimediali in background (ad esempio, la riproduzione di un brano dopo un comando vocale) o accedere ai contenuti multimediali in primo piano (ad esempio quando a un'app assistente vocale viene chiesto di visualizzare l'UI di una fonte multimediale specifica). |
Avvio app | Tutte le app per Android vengono avviate in Avvio applicazioni, incluse le sorgenti multimediali. I contenuti multimediali possono presenterà un proprio selettore di origine multimediale, che integra o sostituisce Avvio applicazioni come punto di partenza per i media. |
Google Play Store | Quando si usa GAS, gli utenti trovano e installano nuove app in un Dispositivo Android. Per i contenuti multimediali, una volta installate le app, gli utenti vengono indirizzati alla pagina per completare la procedura di accesso o per iniziare a interagire con l'app. |
Gestore della sessione multimediale | Servizio di sistema Android che monitora e controlla le sessioni multimediali da tutte le fonti multimediali. it fornisce meccanismi per rilevare quando una fonte multimediale diventa il contenuto multimediale in primo piano sorgente. Contenuti multimediali e tutte le altre app che mostrano l'origine dei contenuti multimediali attualmente in riproduzione (ad ad esempio la schermata Home), utilizza Media Session Manager per rilevare questi eventi e aggiornare l'UI di conseguenza. Le sorgenti multimediali interagiscono con il Gestore delle sessioni multimediali tramite Contenuti multimediali l'API Session. |
Radio | App specializzata per interagire con l'hardware della radio. Ricerche radio per radio stazioni radio, selezionando rapidamente le stazioni identificate di recente e passando da una banda radio all'altra. I componenti dell'interfaccia utente condivisi da Radio e Contenuti multimediali consentono all'utente di passare da uno all'altro ed esperienze variegate. |
Motore di distrazione | Servizio di sistema Android utilizzato per imporre limitazioni relative all'esperienza utente in base allo stato di guida di in auto. Per le sorgenti multimediali, l'accesso e le impostazioni UX (in cui lo schermo è controllato direttamente le fonti multimediali), questo servizio garantisce che non vengano mostrati contenuti non sicuri quando l'auto è mentre guidi. Gli OEM possono personalizzare la definizione di questi stati e il modo in cui il sistema reagisce in queste situazioni (ad esempio, mostrando un overlay della schermata di blocco). |
Flussi di utenti
Lancio di un'app multimediale
Di seguito è riportata la procedura per avviare i contenuti multimediali.
Figura 2. Lancio di un'app multimediale
I contenuti multimediali devono essere avviati utilizzando il seguente codice implicito
CAR_INTENT_ACTION_MEDIA_TEMPLATE
.
Questo intent può avere le seguenti informazioni come extra:
-
android.car.intent.extra.MEDIA_COMPONENT
(facoltativo). Stringa extra per rappresentare il nome del componente bidimensionale di unMediaBrowserService
nell'app multimediale a cui deve connettersi il contenuto multimediale. Se non viene specificato, i contenuti multimediali vengono visualizzati. l'app multimediale attualmente selezionata. Questo intent viene utilizzato dai seguenti punti di ingresso:-
UI di sistema. Per tornare all'esperienza multimediale o iniziare a utilizzarlo per la prima volta. In questo caso, l'intent riportato sopra verrà utilizzato senza in modo da far sì che i contenuti multimediali mostrino l'app multimediale attualmente selezionata.
-
Schermata Home, assistenti e centro notifiche. Gli utenti possono vai a Contenuti multimediali per visualizzare l'app multimediale attualmente selezionata. In ogni caso, viene attivato l'intent implicito senza extra.
-
Avvio app. Quando gli utenti selezionano un'app multimediale dalla Avvio applicazioni, l'intent riportato sopra include
CAR_EXTRA_MEDIA_COMPONENT
contenente l'app multimediale selezionata. Gli elementi multimediali la designano come selezionata e si connette a quest'ultima. Per maggiori dettagli, vedi la sezione App Integrazione da Avvio app a Media.
-
Integrazione da Avvio applicazioni a Media
Le app multimediali non sono autorizzate a fornire attività annotate con i
Categoria android.intent.category.LAUNCHER
. Di conseguenza, Avvio applicazioni (o
equivalenti) devono implementare una logica speciale per gestire l'integrazione dell'origine multimediale:
-
Avvio applicazioni deve analizzare il sistema alla ricerca di pacchetti che implementano
MediaBrowserService.SERVICE_INTERFACE
. Per questi pacchetti, Avvio applicazioni recupera un'icona di servizio simile a quella utilizzata per recuperare attività. -
Avvio app combina poi questi pacchetti con quelli che implementano
android.intent.category.LAUNCHER
attività. Se un'app fornisce unMediaBrowserService
e un'attività di Avvio app, il servizio richiede la precedenza.Al momento della stesura del presente documento, nessuna app di fonte multimediale è in grado di fornire un'attività di avvio applicazioni.
- Un esempio di questa logica è disponibile nel codice AOSP all'indirizzo
AppLauncherUtils#getAllLauncherApps()
.
Flusso di accesso e opzioni di configurazione
Le app multimediali possono includere un'attività Impostazioni ottimizzata per il veicolo. Una tale attività può essere utilizzati per implementare flussi utente non affrontati dalle API Android Media, ad esempio:
- Accedi
- Esci
- Passaggio da un account all'altro
- Visualizza a cui l'utente ha effettuato l'accesso (se presente)
- Configurazione del servizio
Figura 3. Flusso di accesso
Questa attività relativa alle impostazioni viene dichiarata dall'app multimediale con il seguente filtro per intent:
<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>
I contenuti multimediali devono implementare la seguente logica:
-
Verifica che l'app multimediale attualmente selezionata includa un'attività con Filtro per intent.
-
In questo caso, consenti all'utente di accedere all'attività.
-
Se sono attive le Restrizioni UX dell'auto (ad esempio, l'auto è in movimento), questo invito deve essere disattivata perché l'attività delle impostazioni non è una UI ottimizzata per il driver.
Gestione degli errori e accesso richiesto
I contenuti multimediali interagiscono con le app multimediali tramite l'API Android Media Session. Nell'ambito di questo
API, i contenuti multimediali ricevono un
PlaybackState
che comunica lo stato attuale dell'app multimediale.
La procedura di accesso inizia quando cambia l'app multimediale
PlaybackState
a
STATE_ERROR
,
incluso un codice di errore specifico (vedi i dettagli di seguito). Quando questo
l'elemento multimediale visualizza la descrizione dell'errore e l'invito a passare a un'attività di accesso
implementato dall'app multimediale.
Lo stesso flusso può essere utilizzato dalle app per segnalare altre situazioni di errore (ad esempio, un errore di connettività del server).
Figura 4. Gestione degli errori
Nell'ambito della normale gestione degli errori di PlaybackState
, i contenuti multimediali devono controllare il seguente input.
-
Codice di errore
PlaybackState
uguale aPlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED
. Questo indicatore che l'app multimediale richiede l'accesso per continuare a funzionare. Altri codici di errore possono essere ricevute, il che indica altri tipi di situazioni di errore. -
PlaybackState
messaggio di errore (impostato dalle app multimediali che utilizzano ilPlaybackStateCompat.Builder#setErrorMessage
) contiene un una spiegazione leggibile (ad esempio, "Non hai eseguito l'accesso."). Questo messaggio deve essere mostrato ai e deve ottimizzare le distrazioni (DO). -
Se vuoi,
PlaybackState
può includere i seguenti extra (impostati dai contenuti multimediali) app conPlaybackStateCompat.Builder#setExtras
) con le seguenti chiavi.-
android.media.extras.ERROR_RESOLUTION_ACTION_LABEL
. Impostato su una stringa che contiene il messaggio leggibile da visualizzare sul pulsante toccato dall'utente per avviare flusso di accesso. -
android.media.extras.ERROR_RESOLUTION_ACTION_INTENT
. Imposta con unPendingIntent
per essere attivata quando l'utente fa clic sul pulsante sopra indicato. QuestoPendingIntent
Punta a un'attività di accesso personalizzata implementata dalla stessa app multimediale.
-
-
Lo stato
PlaybackState
è uguale aSTATE_ERROR
Questo indica che non è possibile eseguire altre operazioni fino al completamento dell'accesso.