Google Music on Glass
A glimpse into the future

tl;dr: I released a project that lets you play Google Music on Glass

I've been speculating for the last few weeks that Google will be adding remote control functionality to +Google Glass for Google Music. First the Music app added a strange "XDI" interface that seemed to only do anything when installed on Glass. Then in XE10 the other hammer fell and some assets were added to show a UI.

GlassTunes is my demo showing how it can look and feel, and serves as a proof of concept for local playback. I'm trying to get as close as I can to their actual experience, so a lot of decompiling and reverse engineering has been necessary. This uses the actual XDI provider, so Google Music (not included) needs to be installed on Glass. The only difference between what I intend for this project and what I believe Google intends to do is that GlassTunes plays music locally, whereas I suspect Google will send the commands to the MyGlass app on the phone via Bluetooth and have that sent to the instance of Music on the phone.

What works
GlassTunes can browse your Google Music library (including All Access and Radio stations) and allow you to play tracks and playlists on Glass. The currently playing track's name and artist is shown (Album art pending), and Play/Pause and Skip Forward/Back controls are also included.

What's in progress

I also need your help. Parts of it don't work as nicely as I'd like (especially the Now Playing page), and I've got more goals for this. See the issues section for things that need attention.

This app is also the beginnings of a pseudo-GDK I'm working on. I want to make it easier for native APKs to have the same feel as the timeline. I've identified some classes and packages in the GlassHome app that I'd like to extract, and some of them have made their way into GlassTunes.

There's a reason I'm releasing this in source form rather than as an apk. Neverminding that reverse engineering is a fragile art, the XDI provider in Music that GlassTunes depends on is not yet complete as of 5.2. That means certain areas will be unpopulated and some may crash. I'll try to get these documented so we can avoid duplicating crash reports.

Have fun exploring!
Shared publiclyView activity