I've been meaning to write about my boxee app for a while now, but hasn't gotten around to it until now.
Background
It all started when the remote for my Boxee device stopped working, I began to research and found out that it is not an uncommon issue, in fact it is propably the most common one.
I went on Google Play and looked for replacement apps instead and tried a few ones out, but lets just say, they left me with a slight nausea (have a look for yourself).
So I decided to write my own remote, after about two weeks of spare time work I managed to get something up and running. Something I would end up naming "A Better Remote - For Boxee".
Under the hood it's a straightforward Android app that is optimized for 4.0 (ICS) with okhttp from square as the most prominent third part library.
The tricky parts.
- The keyboard. Getting the keyboard to display correctly was harder then it looks, by using a command called `getKeyboardText` a xml dump is retrived that contains keyboard visibility. That command is then used for pinging the device for visibility.
- Discovery. To find the actual device was tricky, by broadcasting on port 2563 with a hard coded shared key, challange and application we get the necessary details, achieved with DatagramSocket and DatagramPacket.
- Lag. One of the features of the app is the hold down to repeat button functionality, the problem is that since the Boxee sports a traditional web server (Apache?) to receive the commands they are sometime queued, which results in lag. I avoided some of the lag by acually slowing down the interval commands are sent.
Release:
I went on to sell it on Google Play. I did not expect a lot of downloads, but it is performing better then expected, with a 4.6 rating and 82 purchases.
So if you are looking for a Boxee remote replacement, please try it out, let me know what you think!