2016-04-13 2 views
2

Ich habe Probleme mit der Implementierung von TvInputService.AndroidTV TvInputService Implementierung

Ich habe alle Informationen vom Server über Kanäle (Ende/Startzeiten, Uri Adressen, ID, Name, etc ..)

Mein Ziel ist es, eine App zu Setup-Streaming-Kanäle aus diesen Informationen zu erstellen bekamen aus der Server. Ich versuchte dies http://developer.android.com/training/tv/tif/tvinput.html ... auch wenn ich die Theorie (meist) verstehe, bin ich noch neu dazu und weil die Website keine Codierungsbeispiele und eine gründliche Erklärung davon bietet, ist es wirklich frustrierend. Ich habe auch versucht, die Probe von Android bereitgestellt, aber das ist zu komplex für das, was ich versuche zu tun, und es verwirrt mich nur noch mehr.

Kann mir jemand helfen, indem er erklärt (einfacher Weg, wenn möglich) mit einigen Beispielen über die Implementierung von TvInputService? Vielen Dank!

Antwort

0

Sie können meine Bibliothek verwenden, ChannelSurfer, die die Entwicklung von TV-Input-Diensten erheblich vereinfacht.

Es gibt einige wichtige Schritte, die Sie ausführen müssen, um einen Eingabedienst zu erstellen.

  1. Deklarieren Sie, welche Kanäle zugänglich sind.
  2. Declare, welche Programme auf jedem Kanal
  3. gespielt werden, wenn ein Benutzer Melodien auf Ihren Kanal, wie wird das Video

Dieses angezeigt geschieht normalerweise durch SyncAdapters und Dienstleistungen, obwohl diese Bibliothek alles läuft darauf hinaus, zu einer einzelnen Klasse, die Sie basierend auf Ihren eigenen Spezifikationen erstellen.

Es gibt auch eine Beispiel-App, wenn Sie weitere Hilfe benötigen.

+0

Vielen Dank, ich werde es ausprobieren :) – Mokrab

+0

Ich habe auch ein bisschen ein Problem zu verstehen, wie, was und wo, alles über die Setup Activity ... Ich habe deine Beispiele gelesen, aber ich bin immer noch verwirrt, weil beide sehr unterschiedlich sind, könntest du in Laienausdrücken erklären, was drin sein sollte, ein kleines Beispiel, so ausführlich wie möglich?Das würde mir eine Tonne helfen :) – Mokrab

+0

@Mokrab haben Sie sichergestellt, dass Sie die richtigen Berechtigungen und Manifest-Details haben? Beginnen wir mit einem einfachen 'InputProvider' starten: @Override public List getAllChannels (Context mContext) { Log.d (TAG, "alle Kanäle Get"); Liste Kanäle = neue ArrayList <>(); channels.add (neuer Kanal() .setName ("Time.Is") .setNumber ("1")); Rückkanäle; } Dies erstellt die Kanäle für Ihren Service. –

0

Basierend auf dieser documentation sollten diejenigen, die TV-Input-Dienste implementieren, dies normalerweise tun, indem sie von dieser Klasse ableiten und ihre eigene Session-Implementierung basierend auf TvInputService.Session bereitstellen.

Ihr App-Manifest muss Ihre TvInputService deklarieren und dann die BIND_TV_INPUT Berechtigung angeben, damit der Dienst den TV-Eingang mit dem System verbinden kann.

<service android:name="com.example.sampletvinput.SampleTvInput" 
    android:label="@string/sample_tv_input_label" 
    android:permission="android.permission.BIND_TV_INPUT"> 
    <intent-filter> 
     <action android:name="android.media.tv.TvInputService" /> 
    </intent-filter> 
    <meta-data android:name="android.media.tv.input" 
     android:resource="@xml/sample_tv_input" /> 
</service> 

Sie können diese example auf GitHub überprüfen.

+0

Danke, ich habe den Code im Manifest am Anfang hinzugefügt, aber der Teil im stecken ist die TvInputService-Klasse selbst. Ich kann nicht scheinen zu erkennen, was getan werden muss auf den Methoden von TvInputServicce.Session – Mokrab

0

Ich bekomme "Ich kann nicht automatisch nach" Autorisierung "suchen, nachdem ich versuche, die Kanäle zu installieren. Ich benutze Dateien von ChannelSurfer, schaffte es, den Provider und HOPEFULY das Setup (immer noch verwirrt), aber ich bin auf diesem Teil stecken ... Die Konsole wirft keinen einzigen Fehler, aber der Fernseher sagt die obige Aussage. Warum passiert das und was sind die möglichen Korrekturen?