The latest news and developments around Android, Google's embedded mobile platform featuring in smartphones, tablets, set-top boxes, cameras, watches and some other unexpected places...
What is… Anymote?
This one cropped up at Apps World in a presentation on app testing. What is Anymote I asked myself? Time for another in our What is… series (heavily relying on the info already available on developers.google.com/tv/remote/docs/anymote).
Basically we are the region of Google TV, and Anymote is a messaging protocol that devices use to communicate with Google TV. Specifically, the applications running on those (presumably) remote devices. In a world of converging appliances this may become increasingly important, with the TV serving as a more general info display screen within a home…
The obvious example is that if someone wanted to write a super-duper remote TV controller app they would need to use this protocol.
Taking things further, part of a more general application may connect to Google TV. Google themselves give the example of building an application that runs on a mobile phone by default, but has the ability to switch to the TV to display a particular web page.
Anymote Protocol works in conjunction with the Google TV Pairing Protocol. Clients and servers need to get themselves identified and sorted out. A mobile phone working with Google TV is no exception, for example, and a pairing session will need to be conducted.
Basically, the app communicates with Google TV , and the server “issues a challenge” for the app to complete. Google gives the example of a server showing a code and the client echoing that code back. In the context of Google TV, a code may be displayed and the user of the app has to enter the same code on the device’s keyboard.
Full details of the messaging sequence can be found online. See picture below:
Monitoring the Connection
An application might want to ping Google TV to determine the status of the connection to the server even before it receives a TCP timeout, writes Google. This will be done by sending a RequestMessage to which Google TV responds.
Each RequestMessage corresponds to an event sent to Google TV from the remote app. The events involved are:
Note that there are also Chrome extensions that use Anymote protocol to communicate with Google TV see the google-tv-chrome-extensions project site.
You can read more about the Anymote protocol on code.google.com, where you can find a reference implementation of the protocol written in Java.
From there, you can also download and try out the Google TV Android Remote app from the Android Marketplace, which turns your Android phone into a remote controller for Google TV (source code for the app is available online).
If you want more Google TV Android samples, this is the place to go. The site contains these example apps:
ChannelChangingSample – How to change the TV’s Channels
LeftNavBarDemo – Demo of the Left Nav Bar Library (look at all the options)
LeftNavBarLibrary – Library for navigation on the left hand side of the screen.
MapsOnTV – How to get Maps on TV
Notifier – Demo App for Notification on TV