Ab Android 13 enthalten die Mediensteuerelemente in der Systembenutzeroberfläche Updates für Aktionsschaltflächen und 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 Remote-Wiedergabe vorgenommen wurden.
Änderungen an der Aktionsschaltfläche
Um sicherzustellen, dass Benutzer auf eine Vielzahl von Mediensteuerelementen für Apps zugreifen können, die Medien abspielen, 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
Aktionsstatus. Dies stimmt mit der Art und Weise überein, wie Mediensteuerelemente auf anderen Android-Plattformen wie Auto, Assistant und Wear gerendert werden.
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 zu bieten, 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. Mit dieser API können System-Apps, die die Benachrichtigungen veröffentlichen, Folgendes tun:
- Stellen Sie dem Standardausgabeumschalter der Mediensteuerung Informationen und Funktionen für Medien bereit, die von einem Remote-Gerät stammen.
- Ersetzen Sie bei Bedarf den Leistungsumschalter für den Ausgang.
System-Apps, die diese Benachrichtigung verwenden, müssen über die Berechtigung 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 die System-Benutzeroberfläche die standardmäßigen Geräteinformationen des Ausgabeumschalter-Chips ersetzen und die Mediensteuerung für die Remote-Wiedergabe am Ende der Liste der lokalen Mediensteuerungen hinzufügen.
Umsetzung der Mediensteuerung
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 entsprechend ihrem Output-Switcher-Angebot 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:
- Beim Abspielen von Medien aus einer App funktionieren die Tasten wie vorgesehen.
- Der Ausgabeumschalter 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
. - Unit-Tests unter
com.android.systemui.media
.
Empfehlungen finden Sie in der neuen CDD-Anforderung [3.8.3.1/H-1-SR].