TV-Controller verwalten

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:

KeyEventVerhalten
KEYCODE_BUTTON_B, KEYCODE_BACKZurück
KEYCODE_BUTTON_SELECT, KEYCODE_BUTTON_A, KEYCODE_ENTER KEYCODE_DPAD_CENTER, KEYCODE_NUMPAD_ENTERAuswahl
KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT KEYCODE_DPAD_RIGHTNavigation

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.

KeyEventTransportControls-AufrufVerhalten
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_R1skipToNext()Vorwärts springen
BUTTON_L1skipToPrevious()Rückwärts springen
DPAD_RIGHT, BUTTON_R2, AXIS_RTRIGGER AXIS_THROTTLEfastForward()Vorspulen
DPAD_LEFT, BUTTON_L2, AXIS_LTRIGGER AXIS_BRAKErewind()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.

Abbildung 1: Beispiel für eine Controller-Anleitung mit dem Gamepad-Vorlage für Android TV.