GTV Android APIs

Moderator: Revue Mod

ReubenS
Android 1.0
Posts: 8
Joined: Mon Aug 15, 2011 5:10 am

GTV Android APIs

Post by ReubenS »

Is anyone else messing around with the GTV-specific Java libraries? There's no SDK yet, so no documentation, but they seem pretty straightforward.

I'm particularly interested in program guides so I'm looking primarily at the packages com.google.tv.epg and com.google.tv.epg.domain. One of these contains a service named ILineupService that's pretty easy to bind a client app to.

The problem I have though is that the service queries a Google address which returns an HTTP 400. This might be because I'm in the UK and it's a region-locked service. The URL that the service tries to get programme data from is:

http://www.google.com/tv/a/lineup?fmt=p ... wCyGxIU%3D

If anyone can get anything other than a HTTP 400 from that, please let me know. If you are interested in looking into this area of GTV hacking, please get in touch!

-- Reuben
divergent
Android 1.0
Posts: 6
Joined: Mon Aug 01, 2011 7:29 pm

Re: GTV Android APIs

Post by divergent »

ReubenS wrote:Is anyone else messing around with the GTV-specific Java libraries? There's no SDK yet, so no documentation, but they seem pretty straightforward.

I'm particularly interested in program guides so I'm looking primarily at the packages com.google.tv.epg and com.google.tv.epg.domain. One of these contains a service named ILineupService that's pretty easy to bind a client app to.

The problem I have though is that the service queries a Google address which returns an HTTP 400. This might be because I'm in the UK and it's a region-locked service. The URL that the service tries to get programme data from is:

http://www.google.com/tv/a/lineup?fmt=p ... wCyGxIU%3D

If anyone can get anything other than a HTTP 400 from that, please let me know. If you are interested in looking into this area of GTV hacking, please get in touch!

-- Reuben
I get a 400 as well. I am definitely interested in seeing what else we can get out of the Revue without putting the beta firmware on. Just to dicey for me at the moment. I'm not a developer, but I am savvy and willing to learn. I am assuming you snagged that URL by catching it with a proxy? Is the URL the same every time that call is made? Have you tried using something like Fiddler or Paros proxy to catch more of the information being sent across? There may be some header values you need to send along to get the right information back. Paros and Fiddler will catch that and let you manipulate the data.
ReubenS
Android 1.0
Posts: 8
Joined: Mon Aug 15, 2011 5:10 am

Re: GTV Android APIs

Post by ReubenS »

Hey, thanks for trying... are you in the US? I just setting up a VPN here to fake presence in the US and i still get HTTP 400. Lord knows what's going on, I really wish Google would ship the SDK.

That URL is being accessed by a service in the ROM. I got it by simply examining logcat output once my test app had connected to the EPG service... the service helpfully logs its failures with full URLs.
divergent
Android 1.0
Posts: 6
Joined: Mon Aug 01, 2011 7:29 pm

Re: GTV Android APIs

Post by divergent »

Yes I am in the US. You should definitely try one of those proxy apps as it will capture a lot more data than just the URL. Something like wireshark could do it as well, but that seems like overkill.
ReubenS
Android 1.0
Posts: 8
Joined: Mon Aug 15, 2011 5:10 am

Re: GTV Android APIs

Post by ReubenS »

Maybe the EPG service is checking user agent strings... don't suppose anyone would know the User-Agent for the original Revue ROM?

The current Honeycomb 3.1's user agent is Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/b55579.
elsewhat
Android 1.0
Posts: 13
Joined: Tue Aug 02, 2011 2:36 am

Re: GTV Android APIs

Post by elsewhat »

Quick question: Where are the necessary .jars for the com.google.tv packages located?

Assume they are somewhere on the filesystem of an updated honeycomb revue?
parrotheadmjb
Android 1.0
Posts: 30
Joined: Tue Aug 16, 2011 12:43 pm

Re: GTV Android APIs

Post by parrotheadmjb »

ReubenS wrote:Maybe the EPG service is checking user agent strings... don't suppose anyone would know the User-Agent for the original Revue ROM?

The current Honeycomb 3.1's user agent is Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/b55579.
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Large Screen Safari/533.4 GoogleTV/b54202
ReubenS
Android 1.0
Posts: 8
Joined: Mon Aug 15, 2011 5:10 am

Re: GTV Android APIs

Post by ReubenS »

parrotheadmjb: Thanks!

elsewhat: they're in /system/framework. You can fish them out with 'adb pull /system/framework/com.google.tv.mediadevices', for example.

Some excitement... I have today managed to get broadcast TV into my own app! I dexdump'd com.google.tv.mediadevices.MediaDeviceView and followed what it does. You bind to a service and tell the standard VideoView widget to open hdmi://localhost?port=2 once you've got your service connection. You also need to put the permission com.google.tv.mediadevices.permission.MEDIA_DEVICES_CLIENT in your manifest.xml.
bitbang3r
Android 1.0
Posts: 6
Joined: Thu Aug 04, 2011 1:01 pm

Re: GTV Android APIs

Post by bitbang3r »

Can the Revue detect (via hdmi?) whether or not the TV is physically turned on, so a background service in a running app could take some kind of action and shut down a few minutes after determining that the user appears to have turned off the TV?
swapped
Android 1.0
Posts: 16
Joined: Thu Aug 11, 2011 10:08 am

Re: GTV Android APIs

Post by swapped »

ReubenS wrote:parrotheadmjb: Thanks!

elsewhat: they're in /system/framework. You can fish them out with 'adb pull /system/framework/com.google.tv.mediadevices', for example.

Some excitement... I have today managed to get broadcast TV into my own app! I dexdump'd com.google.tv.mediadevices.MediaDeviceView and followed what it does. You bind to a service and tell the standard VideoView widget to open hdmi://localhost?port=2 once you've got your service connection. You also need to put the permission com.google.tv.mediadevices.permission.MEDIA_DEVICES_CLIENT in your manifest.xml.
does this mean that we can hope for some sort of ota tv app in the near future with guide that switches tv channels automatically...or would that not work??? guess not since you would lose guide as soon as the changes channel - duh. What about soem sort of support for usb tuners or network tuners?
Post Reply