16
Apr
app_launcher_icon

MyGlass, the Google Glass companion app, has just hit the Play Store.  Since no one actually has a pair of Google Glass yet, no one actually knows what this thing does. To save myself from going crazy while waiting for my Glass email, ripping apart this new app seemed like a good distraction.

Permissions

The package name is "com.google.glass.companion," and, naturally, this release is version 1.0.0. MyGlass has a decent amount of permissions, here are a list of the most important ones:

  • Access Wi-Fi and Bluetooth (ACCESS_WIFI_STATE/ACCESS_NETWORK_STATE/CHANGE_WIFI_STATE)
  • Google Voice Send and Receive permissions
  • Full account access (GET_ACCOUNTS/USE_CREDENTIALS/MANAGE_ACCOUNTS)
  • Receive and send SMS and MMS
  • Full location access (ACCESS_FINE_LOCATION/ACCESS_COARSE_LOCATION)
  • Full internet access
  • Read contacts

So basically, it's a tethering app - a tethering app that Glass appears highly dependent on. The account access permissions suggest it will use your phone to sign in to Google's services - no app, no account access. Also interesting is the fact that it wants to get your location information from your phone. Does that mean Glass doesn't have a GPS chip of its own? I guess there's no need for it, and that would be a great way to save battery.

Other than that, Glass uses your phone for, well, phone stuff - it has permissions to read your contacts and deal with MMS/SMS. And did you catch that second bullet point? Special permissions just for Google Voice! Awesome. Interestingly enough, this does not use the new Google Voice permissions that Google added in the last update. We still aren't sure what that is for.

Bluetooth

<string name="notification_connected_to_glass">Connected to Glass</string>
<string name="notification_bluetooth_error">Bluetooth connectivity error</string>
<string name="notification_bluetooth_error_action">Restarting your phone may resolve it.</string>
<string name="notification_text_tethering_error">Click to resolve tethering error</string>
<string name="notification_pairing_error">Bluetooth pairing error</string>
<string name="notification_pairing_error_action">Click for more information</string>
<string name="dialog_title_error_bluetooth">Bluetooth connectivity error</string>
<string name="dialog_message_error_bluetooth">"Unable to turn on Bluetooth on phone. It is required to connect with Glass.
To resolve this issue, manually restart your phone by holding down the Power button."</string>

Tethering seems to be done exclusively with Bluetooth. The first string here, "Connected to Glass" seems to be an always-on notification which will inform you that you are currently tethered.

Depressingly, there are also about a million strings for Bluetooth connectivity issues. The worst is the last string, which finishes with "To resolve this issue, manually restart your phone by holding down the Power button." Translation: "Bluetooth sucks, and we know it sucks, and there's nothing we can do about it. So please just deal with it and restart your phone. Thanks."

Phone Strings?

<string name="phone_call_mute">Mute</string>
<string name="phone_call_unmute">Unmute</string>
<string name="phone_call_unknown_caller">Unknown</string>
<string name="phone_call_calling">Calling…</string>
<string name="phone_call_hanging_up">Hanging up…</string>
<string name="phone_call_missed_call">Missed call</string>
<string name="phone_call_failed">Call failed</string>
<string name="phone_call_total_time">%s call</string>
<string name="phone_call_duration_hours_minutes_seconds" formatted="false">%s hr %s min %s sec</string>
<string name="phone_call_duration_minutes_seconds" formatted="false">%s min %s sec</string>
<string name="phone_call_duration_seconds">%s sec</string>

For some reason the Glass app (not Glass itself) has a full set of phone strings. Maybe Glass is unable hook into the stock dialer, so there is a special one just for Glass? It seems like, in a perfect world, all of these functions would either be on Glass itself, or handled via the stock phone app. There's some kind of dirty hack going on here.

Push Navigation From Phone To Glass

<string name="launching_on_glass">Launching navigation on Glass.</string>
<string name="launching_locally">Not connected to Glass. Navigating on this device.</string>

One of the coolest things I've found in MyGlass is the ability to push a Google Maps Navigation session to Glass, similar to the Chrome to Mobile functionality, but Phone To Glass. I'm not exactly sure where this is or how it works, but it's clearly something they're thinking about. I'm going to need to see a whole lot more of this, in both directions, in order for Glass to be an elegant product.

Google+

<string name="setup_account_no_gplus_dialog_title">Enable Google+</string>
<string name="setup_account_no_gplus_dialog_text">You must enable Google+ for your account.</string>
<string name="setup_account_no_gplus_relaunch_toast">Please retry after you have signed up for Google+ to continue setup.</string>

Google+ is mandatory to use Glass. Resistance is futile.

Android App Integration

Finally, here's another really, really neat thing they've included. To understand this one, you're going to need to know what a Glass timeline is. On Google Glass, the timeline is a scrollable list of all the actions you've taken recently. So when you take a picture, or send a message, or ask for a translation, all of that ends up on your timeline. If you want to share a picture, you take it, swipe back to it on your timeline, and hit the share button. Imagine it as a task switcher/history/notification panel. Here's a video of the timeline in action.

<receiver android:name=".api.CompanionApiReceiver">
<intent-filter>
<action android:name="com.google.glass.timeline.INSERT_OR_UPDATE" />
<action android:name="com.google.glass.timeline.DELETE" />
</intent-filter>
</receiver>

MyGlass registers a few timeline intents, meaning Android apps can insert, update, or delete items in your timeline, just like a native Glass app. This is what will allow 3rd party Android apps to send stuff to your pair of Glass!

Conclusion

So, how cool was this? Actual, real Google Glass information. Shipping emails are going out right now, and I'm scheduled to get my pair pretty soon (where is that freaking email?!). This is really happening. Assuming my pair ever actually comes in, I'll have a full review and a million other articles about it. I'll practically be running my own "Google Glass Police" subsection. You'll be sick to death of hearing about it.

I've got to go check my email now. Again.

Ron Amadeo
Ron loves everything related to technology, design, and Google. He always wants to talk about "the big picture" and what's next for Android, and he's not afraid to get knee-deep in an APK for some details. Expect a good eye for detail, lots of research, and some lamenting about how something isn't designed well enough.
  • Sergio

    +1000 to the "Google Glass Police" subsection!!!

  • heat361

    I can't wait for your million reviews on glass :p

  • Daeshaun Griffiths

    i was worried about adding another device to my plan. hopefully Glass and smartwatches have a smooth mirroring with my phone. GO CARD UI!!!!!!!

  • Carlos Lopez

    Just going to say Glass auto-sending to Google Voice works since at least 0.4.2.72. The companion package name has been there for months.

  • NathanDrago

    I'd love to see the video "Ron's reaction to Google Glass" :-D

  • http://twitter.com/bigpeepz Chuck Peebles

    Ron Amadeo is such an asset to android police. I love reading everything he writes.

  • Boluskaart

    Google+ :')

  • selonmoi

    So...how goes Bluetooth LE? Hopefully when Key Lime Pie releases, it'll be supported in the platform and on at least the Nexus 4. None of these wearable devices make much sense without it.

  • twaddington

    Nice to see the presence of the timeline Intents. However, I think you're incorrect about the importance of the app itself. The app lets you set up your Google Glass with your Google account, but you can also do this online without an Android device. The permissions just make the process easier so the app can detect the existing Google accounts on your Android device.

  • ssj4Gogeta

    Maybe Glass is unable hook into the stock dialer, so there is a special
    one just for Glass? It seems like, in a perfect world, all of these
    functions would either be on Glass itself, or handled via the stock
    phone app. There's some kind of dirty hack going on here.

    And how exactly would it "hook into the stock dialer"? There obviously needs to be a proxy app on the phone which knows how to talk to glass.
    Those strings are there probably because it's easier to update an app than upgrade Glass' firmware. This is the right way according to me.

  • http://www.geekchoice.com/washington-dc Dagmar Schneitz

    I read about these glasses, and they should be out around May. I still don't know if I'm going to get them or not.

  • Matthew Fry

    These would have to hit a ~$200 price point before I even considered them. Also... Ugh. Google+? Resistance really is futile. I wouldn't be surprised if they started calling GMail G+ Mail and forcing you to look at Google+ in a pane in GMail.

    • Jondan Rothfus

      Do you know how I found this article?
      Google+
      If resistance if futile, then why resist using Google+? It is becoming increasingly not just a social site. It is becoming a social site, an information site, and a Google site. You can resist Google+ because you may not personally prefer it, but you can't ignore the fact that it is growing (both in accounts and actual users) faster than any other social site, and has more to offer than any other social site.

      Resistance really is futile.

  • JLishere

    Someone *please* post the APK.

  • Cody Curry

    Google+ integration required?

    This is either going to shoot Glass in the foot or be the second wind G+ needs to get a lot of active users.

  • Jondan Rothfus

    What if this is a hint that points towards Google Now mirroring/residing in/replacing the notifications tray? I've had the theory for a while, based on a lot of little tidbits here and there. As Google Now continues to evolve, it is becoming even more of another notification center, sometimes even going so far as showing the same notifications as what you see in the tray (calendar event reminders, etc.). With the introduction of Mr. Jingles for Google+ notifications, it seems reasonable to think that they made a "mascot" for notifications because Google is going to be pushing notifications in a big way moving forward. Maybe Mr. Jingles will be the face of all Google notifications, which may be housed within Google Now. There have been recent sights that Google Now itself may be getting some 3rd party app support, so this would potentially tie well with this article's discovery.

    I think what we're going to see is Google continuing to push Google+ as the hub for Google services, and Google Now being the hub for Google notifications, with both Google+ and Google Now becoming more friendly to 3rd parties.