Ab Android 13 enthalten die Mediensteuerelemente in der System-Benutzeroberfläche Aktualisierungen für Aktionsschaltflächen und die Remote-Wiedergabe. Diese Änderungen unterstützen eine ausgefeiltere Mediensteuerung auf Telefonen und Tablets und bieten nahtlose Medienübertragungen zwischen Geräten.
Aktualisierungen der Mediensteuerung
In diesem Abschnitt werden die Aktualisierungen beschrieben, die an den Mediensteuerelementen in Android 13 für Aktionsschaltflächen und die Remote-Wiedergabe vorgenommen wurden.
Änderungen der Aktionsschaltfläche
Um sicherzustellen, dass Benutzer auf eine Vielzahl von Mediensteuerelementen für Apps zugreifen können, die Medien wiedergeben, werden Aktionsschaltflächen auf Mediensteuerelementen für Android 13 von den PlaybackState
-Aktionszuständen abgeleitet. Mit dieser Änderung generiert die Funktion MediaDataManager#createActionsFromState
Aktionsschaltflächeninformationen basierend auf dem PlaybackState
-Aktionszustand. Dies entspricht der Darstellung von Mediensteuerelementen auf anderen Android-Plattformen wie Auto, Assistant und Wear.
Im Gegensatz dazu wurden in Android 12 die Aktionsschaltflächen auf Mediensteuerelementen durch Benachrichtigungsaktionen bestimmt, die einer MediaStyle
Benachrichtigung hinzugefügt wurden.
Eine Zusammenfassung der App-kompatiblen Änderungen für die Aktualisierungen der Aktionsschaltflächen finden Sie unter StatusBarManager
.
Remote-Wiedergabe-API
Um ein zusammenhängendes Medienerlebnis auf einer Vielzahl von Oberflächen bereitzustellen, wird ab Android 13 eine neue System-API Notification#setRemotePlaybackInfo
hinzugefügt, um Medienbenachrichtigungen auf der Benutzeroberfläche des Mediensteuerungssystems für die Remote-Wiedergabe zu markieren. Diese API lässt System-Apps, die die Benachrichtigungen posten, Folgendes tun:
- Bereitstellen von Informationen und Funktionen für Medien, die von einem Remote-Gerät stammen, für den Standardausgabeumschalter in der Mediensteuerung.
- Ersetzen Sie bei Bedarf das Angebot des Ausgangsumschalters.
System-Apps, die diese Benachrichtigung verwenden, müssen über die MEDIA_CONTENT_CONTROL
verfügen.
Die Notification#setRemotePlaybackInfo
API fügt außerdem die folgenden extras
hinzu, um den Namen, das Symbol und die Absicht des Remote-Wiedergabegeräts zu bestimmen:
-
Notification#EXTRA_MEDIA_REMOTE_DEVICE
-
Notification#EXTRA_MEDIA_REMOTE_ICON
-
Notification#EXTRA_MEDIA_REMOTE_INTENT
Mit diesen Informationen kann System UI die Geräteinformationen des standardmäßigen Ausgangsumschalter-Chips ersetzen und die Mediensteuerung für die Remote-Wiedergabe am Ende der Liste der lokalen Mediensteuerungen hinzufügen.
Umsetzung der Medienkontrolle
OEMs müssen sich dieser Änderung des Standardverhaltens bewusst sein, da sie sich darauf auswirkt, wie Mediensteuerelemente für Apps generiert werden. OEMs müssen außerdem sicherstellen, dass die neue System-API wie in ihrem Angebot für Ausgangsumschalter anwendbar funktioniert.
OEMs müssen keine Änderungen vornehmen und können die Standardimplementierung in AOSP verwenden.
Anpassung der Remote-Wiedergabe
In Fällen, in denen der OEM über eine System-App verfügt, die Benachrichtigungen zur Remote-Medienwiedergabe veröffentlicht, kann die App optional setRemotePlaybackInfo
zur Benachrichtigung aufrufen, sofern ihr die Berechtigung MEDIA_CONTENT_CONTROL
erteilt wurde. Dies ist jedoch keine Voraussetzung und der Partner kann sich gegen eine Anpassung entscheiden.
Validierung der Medienkontrolle
Um die Mediensteuerung in der System-Benutzeroberfläche zu testen, führen Sie einen manuellen Test durch, um Folgendes zu überprüfen:
- Die Tasten funktionieren wie vorgesehen, während Medien von einer App abgespielt werden.
- Der Ausgangsumschalter zeigt die korrekten Geräteinformationen an.
Verwenden Sie die folgenden Tests, um die Remote-Wiedergabe-API zu validieren:
- CTS-Tests in
NotificationManagerTest
, z. B.testMediaStyleRemotePlayback_noPermission
undtestMediaStyleRemotePlayback_hasPermission
. - Komponententests unter
com.android.systemui.media
.
Empfehlungen finden Sie in der neuen CDD-Anforderung [3.8.3.1/H-1-SR].