TV-Geräte benötigen für die Interaktion mit Apps ein sekundäres Hardwaregerät – ein einfaches eine Fernbedienung oder einen Controller. Deine App muss daher die Eingabe über die Richtungstasten (Steuerkreuz) unterstützen. Außerdem kann es sein, dass deine App auch Controller verarbeiten muss, die offline sind und Eingaben von mehr als einem die Art des Controllers.
In diesem Leitfaden werden die Anforderungen für den Umgang mit Controllern für TV-Geräte erläutert.
Steuerkreuz-Mindesteinstellungen
Der Standard-Controller für Fernseher ist ein Steuerkreuz. Im Allgemeinen muss Ihre App von einem Fernbedienung mit nur den Tasten „Nach oben“, „Nach unten“, „Links“, „Rechts“, „Auswählen“, „Zurück“ und „Startbildschirm“. Wenn Ihre App ist ein Spiel, für das in der Regel ein Controller mit zusätzlichen Steuerungen erforderlich ist. versuchen, das Gameplay nur mit diesem Steuerkreuz zu unterstützen. Warnen Sie andernfalls den Nutzer, dass ein Controller erforderlich ist.
Weitere Informationen zur Navigation mit dem Steuerkreuz auf Fernsehern findest du unter TV-Navigation.
Trennen der Verbindung zum Controller
Controller für Fernseher sind häufig Bluetooth-Geräte, die versuchen können, in regelmäßigen Abständen in den Ruhemodus wechseln und die Verbindung zum Fernseher trennen. Das bedeutet, dass eine App unterbrochen oder neu gestartet, wenn es nicht für die Verarbeitung dieser Verbindungsereignisse konfiguriert ist. Diese Ereignisse kann in folgenden Fällen auftreten:
- Während ein mehrere Minuten langes Video abgespielt wird, wechselt der Controller möglicherweise in den Ruhemodus, trennt die Verbindung zum Fernseher und verbindet sich später wieder.
- Während des Spiels kann ein neuer Spieler einen Controller verwenden, der noch nicht verbunden.
- Während des Spiels kann es vorkommen, dass ein Spieler das Spiel verlässt und die Verbindung zu einem Controller trennt.
Für alle TV-App-Aktivitäten, bei denen Ereignisse vom Typ „Verbindung trennen“ und „Wieder verbinden“ auftreten, muss Folgendes konfiguriert werden: im App-Manifest verarbeitet. Im folgenden Codebeispiel wird veranschaulicht, Eine Aktivität aktivieren, um Konfigurationsänderungen zu verarbeiten, einschließlich Tastatur oder Navigationsgerät Verbindung herstellen, trennen oder wiederherstellen:
<activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|navigation" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> ... </activity>
Durch diese Konfigurationsänderung kann die Anwendung über eine erneute Verbindung ausgeführt werden. statt durch das Android-Framework neu gestartet zu werden, das kein User Experience zu schaffen.
Eingabevariationen des Steuerkreuzes verarbeiten
Nutzer von Fernsehgeräten haben möglicherweise mehrere Arten von Controllern, die sie für ihren Fernseher verwenden. Für Angenommen, ein Nutzer hat sowohl einen einfachen Controller als auch einen Controller. Die Schlüsselcodes die von einem Controller bereitgestellt werden, wenn er für Funktionen des Steuerkreuzes verwendet wird. Codes, die über das Steuerkreuz gesendet werden.
Behandeln Sie Variationen der Steuerkreuz-Eingabe, damit der Nutzer die Steuerung wechseln, um deine App zu nutzen. Weitere Informationen zur Handhabung Eingabevariationen, siehe Eingabe über die Richtungstasten.
Schaltflächenereignisse verarbeiten
Wenn der Nutzer auf eine Taste auf einem Controller klickt, empfängt Ihre App ein Ereignis mit einem
KeyEvent
Die vorgesehene
Das Verhalten der Schaltfläche kann ein Medienereignis wie „Wiedergabe“, „Pause“ oder „Stopp“ oder ein Ereignis vom Typ „TV“ sein, z. B.
Auswahl oder Navigation. Weisen Sie im Interesse einer guten User Experience
Steuerungstasten.
TV-UI-Ereignisse
Weist den Schaltflächen zum Generieren von KeyEvent
das Verhalten der TV-Benutzeroberfläche zu
wie in der folgenden Tabelle dargestellt:
KeyEvent | Verhalten |
---|---|
KEYCODE_BUTTON_B , KEYCODE_BACK | Zurück |
KEYCODE_BUTTON_SELECT , KEYCODE_BUTTON_A , KEYCODE_ENTER
KEYCODE_DPAD_CENTER , KEYCODE_NUMPAD_ENTER | Auswahl |
KEYCODE_DPAD_UP , KEYCODE_DPAD_DOWN , KEYCODE_DPAD_LEFT
KEYCODE_DPAD_RIGHT | Navigation |
Medienereignisse
Wenn sich der Nutzer Medien ansieht, weisen Sie den Schaltflächen, die
KeyEvent
-Typen, wie in der folgenden Tabelle gezeigt. Wenn deine App ein Gerät
MediaSession
,
MediaControllerAdapter
verwenden
um eine der MediaControllerCompat.TransportControls
-Funktionen
die in der Tabelle dargestellt sind. Die Auswahlschaltflächen dienen als Wiedergabe- oder Pause-
der Schaltflächen in diesem Kontext.
KeyEvent | TransportControls-Aufruf | Verhalten |
---|---|---|
BUTTON_SELECT , BUTTON_A , ENTER
DPAD_CENTER , KEYCODE_NUMPAD_ENTER |
play() | Wiedergeben |
BUTTON_START , BUTTON_SELECT , BUTTON_A
ENTER , DPAD_CENTER , KEYCODE_NUMPAD_ENTER |
pause() | Pausieren |
BUTTON_R1 | skipToNext() | Vorwärts springen |
BUTTON_L1 | skipToPrevious() | Rückwärts springen |
DPAD_RIGHT , BUTTON_R2 , AXIS_RTRIGGER
AXIS_THROTTLE | fastForward() | Vorspulen |
DPAD_LEFT , BUTTON_L2 , AXIS_LTRIGGER
AXIS_BRAKE | rewind() | Zurückspulen |
– | stop() | Aufnahme beenden |
Hinweis: Überschreiben Sie bei Verwendung eines MediaSession
die Verarbeitung von
medienspezifische Schaltflächen wie
KEYCODE_MEDIA_PLAY
oder KEYCODE_MEDIA_PAUSE
.
Das System löst automatisch die entsprechenden
MediaSession.Callback
.
Für ein angemessenes Verhalten der Schaltfläche „Zurück“ sorgen
Die Schaltfläche „Zurück“ darf niemals als Ein/Aus-Schaltfläche fungieren. Verwenden Sie sie beispielsweise nicht sowohl zum Öffnen als auch zum Schließen eines . Verwende sie nur, um im Navigationspfad-Stil rückwärts durch die vorherigen Bildschirme des Players zu navigieren. gearbeitet hat.
Da die Zurück-Schaltfläche nur lineare Rückwärtsnavigation ermöglicht, können Sie um ein In-App-Menü zu verlassen, das über eine andere Schaltfläche geöffnet wurde, und zur App zurückzukehren. Durch wiederholtes Drücken der Zurück-Taste muss immer der Android TV-Startbildschirm aufgerufen werden. Beispiel: Spiel > Bildschirm für Spielpausen > Hauptbildschirm des Spiels > Android TV-Startbildschirm oder Serienwiedergabe > Hauptbildschirm der TV-App > Android TV-Startbildschirm.
Weitere Informationen zum Design für die Navigation finden Sie unter „Zurück“ und „Nach oben“-Navigation: Weitere Informationen zur Implementierung finden Sie unter Für eine korrekte Rückwärtsnavigation sorgen:
Controller für Spiele bedienen
Unterstützung des Steuerkreuzes
Plane dein Steuerungsschema am besten mit einem Steuerkreuz. für Android TV-Geräte standardmäßig aktiviert. Der Player muss das Steuerkreuz für alle Aspekte des nicht nur das Gameplay, sondern auch das Bedienen von Menüs und Anzeigen. Aus diesem Grund Achten Sie darauf, dass Ihr Android TV-Spiel nicht auf eine Touchoberfläche mit Sprache wie „Tippe hier, um fortzufahren.“
Wie du die Interaktion des Spielers mit dem Controller formulierst, kann entscheidend sein, um einen großartigen Nutzer zu erreichen. Nutzererfahrung. Folgende Best Practices können dabei hilfreich sein:
- Anforderungen an Controller im Voraus kommunizieren:Verwenden Sie Ihre Google Play-Beschreibung. um dem Spieler alle Erwartungen an die Controller mitzuteilen. Wenn ein Spiel besser dafür geeignet ist, als mit einem Gamepad mit Joystick als mit nur einem Steuerkreuz. Ein Spieler, der ein ungeeigneter Controller für ein Spiel nicht nutzerfreundlich ist und schlechte Bewertung.
- Einheitliche Schaltflächenzuordnung verwenden:Eine intuitive Schaltflächenzuordnung ist entscheidend. User Experience zu schaffen. Halten Sie sich beispielsweise an akzeptierte Zollbestimmungen, indem Sie auf die Schaltfläche „A“ klicken zu akzeptieren und die B-Schaltfläche zum Abbrechen. Sie können auch Flexibilität bieten, in Form von Wiederanpassbarkeit. Weitere Informationen zur Schaltflächenzuordnung findest du unter Alias Controller-Aktionen.
- Controller-Funktionen erkennen und entsprechend anpassen:Controller abfragen zur Optimierung der Abstimmung zwischen Controller und Spiel. Beispiel: könnte ein Spieler ein Objekt lenken, indem er mit dem Controller in die Luft winkt. Aber wenn ein Der Controller des Spielers hat keinen Beschleunigungsmesser und keine Gyroskop-Hardware, daher funktioniert das Winken nicht. Frag den Controller und wenn die Bewegungserkennung nicht aktiviert ist wechseln Sie zu einem anderen verfügbaren Steuerschema. Weitere Informationen Informationen zum Abfragen von Controller-Funktionen finden Sie unter Support Controller in verschiedenen Android-Versionen.
Geeignete Schaltflächen verwenden
Nicht alle Controller haben Schaltflächen zum Starten, Suchen oder Menü. Achten Sie darauf, dass Ihre Benutzeroberfläche zur Verwendung dieser Schaltflächen.
Mehrere Controller verarbeiten
Wenn mehrere Spieler ein Spiel mit jeweils einem eigenen Controller spielen, ist es wichtig,
ordnen Sie jedes Spieler-Controller-Paar zu. Informationen zum Implementieren der Controller-Nummer
finden Sie unter
getControllerNumber()
Trennen der Verbindung zum Controller
Wenn ein Controller mitten im Spiel vom Controller getrennt wird, pausieren Sie das Spiel und Dialogfeld, in dem der Spieler aufgefordert wird, seinen Controller wieder zu verbinden.
Geben Sie im Dialogfeld auch Tipps zur Fehlerbehebung an. Teilen Sie dem um die Bluetooth-Verbindung zu überprüfen. Weitere Informationen zum Implementieren eines Eingabegeräts siehe Umgang mit dem Controller Aktionen und die Bluetooth-Übersicht.
Controller-Anleitung anzeigen
Wenn Ihr Spiel eine visuelle Anleitung für die Spielsteuerung bietet, verwenden Sie ein Controller-Bild ohne Branding und nur mit Android kompatible Schaltflächen.
Laden Sie die Beispielbilder eines Android-kompatiblen Controllers herunter: Gamepad-Vorlage (ZIP) für Android TV Es hat einen weißen Controller auf schwarzem Hintergrund und einen schwarzen Controller auf einem weißen Hintergrund (siehe Abbildung 1) als PNG-Datei und als Adobe® Illustrator®-Datei.