A partire da Android 13, i controlli multimediali nella UI di sistema contengono aggiornamenti ai pulsanti di azione e alla riproduzione remota. Queste modifiche supportano un'esperienza di controllo dei contenuti multimediali più raffinata su smartphone e tablet e offrono trasferimenti di contenuti multimediali senza interruzioni tra dispositivi.
Aggiornamenti ai controlli multimediali
Questa sezione descrive gli aggiornamenti apportati ai controlli multimediali in Android 13 per i pulsanti di azione e la riproduzione da remoto.
Modifiche al pulsante di azione
Per garantire che gli utenti possano accedere a un ampio insieme di controlli multimediali per le app che riproducono contenuti multimediali, i pulsanti di azione sui controlli multimediali per Android 13 derivano dagli stati di azione PlaybackState
.
Con questa modifica, la funzione MediaDataManager#createActionsFromState
genera informazioni sul pulsante di azione in base allo stato dell'azione PlaybackState
.
Questo è in linea con il modo in cui i controlli multimediali vengono visualizzati in altre piattaforme Android come Auto, Assistente e Wear.
Al contrario, in Android 12, i pulsanti di azione sui controlli multimediali sono stati determinati dalle azioni di notifica aggiunte a una notifica MediaStyle
.
Per un riepilogo delle modifiche compatibili con le app per gli aggiornamenti dei pulsanti di azione, consulta
StatusBarManager
.
API di riproduzione remota
Per offrire un'esperienza multimediale coerente su una serie di dispositivi, a partire da Android 13 è stata aggiunta una nuova API di sistema Notification#setRemotePlaybackInfo
per contrassegnare le notifiche multimediali nell'interfaccia utente di sistema del controllo multimediale per la riproduzione da remoto. Questa API consente alle app di sistema che pubblicano le notifiche di:
- Fornire informazioni e funzionalità per i contenuti multimediali provenienti da un dispositivo remoto al selettore di output predefinito sul controllo multimediale.
- Se necessario, sostituisci l'affordance del selettore di uscita.
Le app di sistema che utilizzano questa notifica devono disporre dell'autorizzazione MEDIA_CONTENT_CONTROL
.
L'API Notification#setRemotePlaybackInfo
aggiunge anche il seguente extras
per determinare il nome, l'icona e lo scopo del dispositivo di riproduzione remota:
Notification#EXTRA_MEDIA_REMOTE_DEVICE
Notification#EXTRA_MEDIA_REMOTE_ICON
Notification#EXTRA_MEDIA_REMOTE_INTENT
Con queste informazioni, l'UI di sistema può sostituire le informazioni del dispositivo del chip selettore di output predefinito e aggiungere il controllo multimediale per la riproduzione remota alla fine dell'elenco dei controlli multimediali locali.
Implementazione del controllo dei contenuti multimediali
Gli OEM devono essere a conoscenza di questa modifica al comportamento predefinito, perché influisce sul modo in cui vengono generati i controlli multimediali per le app. Gli OEM devono inoltre assicurarsi che la nuova API di sistema funzioni come previsto nell'affordance del selettore di output.
Gli OEM non sono tenuti ad apportare modifiche e possono utilizzare l'implementazione predefinita in AOSP.
Personalizzazione della riproduzione da remoto
Nei casi in cui l'OEM abbia un'app di sistema che pubblica notifiche relative alla riproduzione di contenuti multimediali
da remoto, l'app può facoltativamente chiamare setRemotePlaybackInfo
per
la notifica, purché abbia ricevuto l'autorizzazione
MEDIA_CONTENT_CONTROL
. Tuttavia, non si tratta di un requisito e il partner può scegliere di non eseguire la personalizzazione.
Convalida del controllo dei contenuti multimediali
Per testare il controllo dei contenuti multimediali nell'interfaccia utente di sistema, esegui un test manuale per convalidare quanto segue:
- I pulsanti funzionano come previsto durante la riproduzione di contenuti multimediali da un'app.
- Il selettore di output mostra le informazioni corrette sul dispositivo.
Utilizza i seguenti test per convalidare l'API di riproduzione remota:
- Test CTS in
NotificationManagerTest
, ad esempiotestMediaStyleRemotePlayback_noPermission
etestMediaStyleRemotePlayback_hasPermission
. - Test delle unità in
com.android.systemui.media
.
Per i consigli, consulta il nuovo requisito relativo ai dati dei clienti [3.8.3.1/H-1-SR].