android xbmc remote control - proof of concept
Sonntag, 8. Februar 2009
Seit längerem spiele ich mit dem Gedanken eine Fernbedienung für xbmc zu basteln. xbmc ist ein ursprünglich für die XBox programmiertes Media Center das inzwischen auch auf Linux, MacOS und Windows portiert wurde. Um Videos zu verwalten ist das Programm bisher das beste was ich finden konnte, vor allem die Fähigkeit Filme aus komprimierten Archiven abzuspielen ist unglaublich praktisch und zeitsparend. Insgesamt ist das Programm zwar noch etwas buggy, der Konkurrenz aber trotzdem schon um längen voraus.
Es gibt eine Lösung xbmc mit einem J2ME-fähigem Handy fernzusteuern, das benötigt jedoch Bluetooth und jedesmal daran zu denken das auf beiden Geräten einzuschalten finde ich ehrlich gesagt etwas umständlich. WLAN andererseits läuft, falls vorhanden, normalerweise überall 24/7, deshalb halte ich das für die perfekte Lösung um mit xbmc zu kommunizieren. Letzte Woche hat dann Spreeblick bekannt gegeben ein G1 verlosen zu wollen, die perfekte Gelegenheit dieses Projekt zu beginnen. Prinzipiell wollte ich das schon seit längerem machen, nur eben auf meinem Nokia Communicator 9300i.
Am Freitag habe ich mich dann endlich hingesetzt und angefangen mir zu überlegen wie man eine solche Fernsteuerung am einfachsten realisieren kann. Meinen Fortschritt habe ich getwittert. Das Resultat ist eigentlich nicht weiter Bemerkenswert, im Prinzip ist das nur der Beispielcode aus dem xbmc source. Da ich vorher nie irgendwas in Java programmiert habe und auch Eclipse nur vom Namen her kannte bin ich trotzdem ziemlich stolz darauf das ganze auf dem Android Emulator aus dem Android SDK zum laufen gebracht zu haben.
Das Programm selbst macht nicht sehr viel, es verbindet sich mit xbmc, schickt eine Nachricht, schickt einige Escape Signale, schickt noch eine Nachricht und kappt die Verbindung wieder. Es gibt auf dem Android Emulator weiter keine ein/ausgabe. Um das Programm zu starten wird Eclipse und der Android SDK benötigt (Installationsanleitung), die Projektdateien entpackt man am besten in das workspace Verzeichnis, wovon es via "File" -> "Import" -> "Existing Projects into Workspace" -> "workspace" als root directory -> "AndroidXBMC" auswählen importiert werden kann. Gestartet werden kann es dann mit "Run", xbmc muss vorher geladen sein.
Falls ich das G1 nicht gewinnen sollte ist das hoffentlich wenigstens ein Startpunkt für andere die eine solche Fernbedienung programmieren wollen. Wäre allerdings toll, wenn ich selbst weitermachen könnte.
Nachtrag:
War spät gestern... hätte noch erwähnen sollen, dass das Programm so natürlich nicht auf einem echten Android Handy laufen kann. Dazu fehlt die Signatur. Und wie gesagt, auf dem Android Emulator selbst findet kein i/o statt. Das einzige Output das es gibt geht über das Netzwerk. Die Nachrichten im xbmc über die Verbindung sind das einzige sichtbare Ausgabe, das ganze sieht dann so aus (unten rechts im xbmc Fenster - das Fenster selbst sieht immer so zerstört aus, keine Ahnung woran das liegt).
Es gibt eine Lösung xbmc mit einem J2ME-fähigem Handy fernzusteuern, das benötigt jedoch Bluetooth und jedesmal daran zu denken das auf beiden Geräten einzuschalten finde ich ehrlich gesagt etwas umständlich. WLAN andererseits läuft, falls vorhanden, normalerweise überall 24/7, deshalb halte ich das für die perfekte Lösung um mit xbmc zu kommunizieren. Letzte Woche hat dann Spreeblick bekannt gegeben ein G1 verlosen zu wollen, die perfekte Gelegenheit dieses Projekt zu beginnen. Prinzipiell wollte ich das schon seit längerem machen, nur eben auf meinem Nokia Communicator 9300i.
Am Freitag habe ich mich dann endlich hingesetzt und angefangen mir zu überlegen wie man eine solche Fernsteuerung am einfachsten realisieren kann. Meinen Fortschritt habe ich getwittert. Das Resultat ist eigentlich nicht weiter Bemerkenswert, im Prinzip ist das nur der Beispielcode aus dem xbmc source. Da ich vorher nie irgendwas in Java programmiert habe und auch Eclipse nur vom Namen her kannte bin ich trotzdem ziemlich stolz darauf das ganze auf dem Android Emulator aus dem Android SDK zum laufen gebracht zu haben.
Das Programm selbst macht nicht sehr viel, es verbindet sich mit xbmc, schickt eine Nachricht, schickt einige Escape Signale, schickt noch eine Nachricht und kappt die Verbindung wieder. Es gibt auf dem Android Emulator weiter keine ein/ausgabe. Um das Programm zu starten wird Eclipse und der Android SDK benötigt (Installationsanleitung), die Projektdateien entpackt man am besten in das workspace Verzeichnis, wovon es via "File" -> "Import" -> "Existing Projects into Workspace" -> "workspace" als root directory -> "AndroidXBMC" auswählen importiert werden kann. Gestartet werden kann es dann mit "Run", xbmc muss vorher geladen sein.
Falls ich das G1 nicht gewinnen sollte ist das hoffentlich wenigstens ein Startpunkt für andere die eine solche Fernbedienung programmieren wollen. Wäre allerdings toll, wenn ich selbst weitermachen könnte.
Nachtrag:
War spät gestern... hätte noch erwähnen sollen, dass das Programm so natürlich nicht auf einem echten Android Handy laufen kann. Dazu fehlt die Signatur. Und wie gesagt, auf dem Android Emulator selbst findet kein i/o statt. Das einzige Output das es gibt geht über das Netzwerk. Die Nachrichten im xbmc über die Verbindung sind das einzige sichtbare Ausgabe, das ganze sieht dann so aus (unten rechts im xbmc Fenster - das Fenster selbst sieht immer so zerstört aus, keine Ahnung woran das liegt).

