Late yesterday, Google began rolling out an update to the Android Wear companion app. Despite a sudden growth of over 2 MB in size, the app only seemed to change the text of a warning, and there were no visible changes on our watches. We knew there had to be something great hidden under the covers, and we were right. The companion app certainly has some interesting changes of its own, but it also acts as the delivery mechanism for a Wear-customized version of Google Play services, and there's a bit to talk about in there, too.
Android Wear App
Even though it's not obvious at first glance, there are some pretty worthwhile changes to the companion app. Of course, the one visible change -if you haven't permanently dismissed the dialog- is a tweak to the warning text for Ambient Mode. It's shorter and fairly abrupt, but no more or less informative than the previous version.
<string name="ambient_screen_warning">Enabling ambient mode will decrease battery life. Are you sure you want to continue?</string>
<string name="ambient_screen_warning">Ambient screen reduces battery life. Turn on?</string>
Most of the remaining changes to strings were pretty innocuous, mostly minor tweaks to text, but this small block did stand out. It appears that the companion app might give us some method of previewing watch faces, along with different sizes of notification cards. Since the Wear app already allows us to push "Demo cards" to the watch, it seems like this is either meant to replace that functionality, or it will let us a preview watch faces right on our phones. None of these strings are actually in use, so this is largely guesswork, but it seems logical to give us a good preview interface once we've got access to an official Watch Face SDK with the next major release of Wear.
<string name="setting_watch_face_sets_preview">Watch face sets card preview</string>
<string name="setting_card_preview">Card preview</string>
Volume Adjustment and Other Unidentified Improvements
Most of our teardown posts focus on the xml strings and layouts, but I often look through code when I'm examining an app. Because there is so much to look at, and most of it just repeats what I've already seen in resources, it's rarely worth mentioning other than to affirm how close a feature might be to launching. In this instance, I found some interesting code that might speak to some additional changes.
Adjust Volume - The media controls aren't particularly extensive, but they really don't need to be when you're working with such a small screen. The code-level interface already supports passing commands (e.g. Play, Pause, Next) and setting user-submitted ratings, but this update also brings the ability to adjust the media volume on your phone. I haven't seen any way to use this feature yet, but I don't doubt it will turn up fairly soon.
There were additional changes that weren't as clearly identifiable with a quick look, but some functions grew by as much as 30%, which indicates there's probably more than just a few bug fixes. There's a bit too much for me to study in a short amount of time, but here is a list of some other things you might want to keep an eye on, there may be something new or interesting that just doesn't stand out until the right events take place.
- Incoming Calls
- Package Manager
- Secure ADB
- Voice Search
- Notification Filtering
Google Play services 6.1 (for Wear)
We don't generally think of the Android Wear companion app as something to be too excited about, but it's actually responsible for distributing updates of the Wear-specific version of Google Play services. This update contains v6.1.11, which is a pretty major revision from v5.0.91 found in Android Wear v1.0.1.
Given that even the version numbers match, it comes as no surprise that there are a lot of similarities between the Wear-oriented apk and its bigger brother. In fact, every brand new string or image, and most of the code in the micro-apk was copied directly from the standard apk, including many that reference typing in captchas or performing other actions that don't make much sense on a watch. It's likely that most of these resources were added for convenience or testing purposes and will never see the light of day in actual usage. It makes perfect sense that most of these features should be copied directly from the primary version of GMS since many of the features should remain identical. After all, and there's no reason to re-invent the wheel, so to speak.
Note: not all of the recently added functionality in the regular version was duplicated in the Wear version, which leads me to expect there is some significance in which pieces were and were not copied.
Rather than paste in a stack of redundant strings, I'm going to simply point out the sections that appear most likely to become relevant features that developers will actually be able to access. Also, feel free to skim back over the Play services 6.1 Teardown, since a lot of the new stuff in this variant came straight from there.
I'm not sure about anybody else, but I've been dying to have NFC on Wear since the day we first knew Google was putting Android on a watch. While the hardware available today is not equipped with the necessary antennas for near-field communications, it looks like Google is still getting things ready for when the first devices begin shipping. As I just finished saying, there are dozens of things that mention NFC, all of which are direct copies from the GMS app for phones and tablets. While all of this could be unnecessary, it seems pointless to copy all of the code, strings, and even an image if it's not about to be used.
I know many people are going to criticize it as a battery drainer, but location services are going to grow up a bit. Of course, there was already some support, which allowed for getting a general area for weather and such; but now Play Services will be able to access "fine" accuracy, which is generally attributed to turning on a GPS. This update appears to be filling in some of the missing pieces, but it's not clear if this is just here to support watches equipped with GPS, or if it will also allow applications on the watch to get a location without relying on a phone-bound companion app to provide it.
There's no mystery here, we know proximity-based unlocking is an upcoming feature. In fact, it's so well known, I'm really not going to bother with saying much more. I just wanted to point out that it's showing up in GMS for Wear, so it should be ready and waiting for us when the feature becomes official.
The story with Google Fit is the same as Personal Unlock. The feature is clearly in the works, and now Play services for Android Wear appears to support it. This seems to be just like the functionality made available for the Preview SDK released back in August, which was then moved into wide availability with the last GMS update last week. I wouldn't expect to see those obvious features like syncing for the pedometer and heart rate sensor, but developers will probably get an announcement shortly that they can begin testing fitness-related features right on Wear devices.
In terms of secrets and brand new features, this isn't the most exciting release we've seen; but it shows that Google is moving the chess pieces into place to prepare for an official release. We know the announcement of L is looming on the horizon, and with it we're likely to see a major update to Android Wear, along with several server-based features suddenly going live. Since this update is pushing out a version of Play services to our watches that so closely matches the one on our phones, I suspect Google has decided that pre-launch testing is done and this is the version that's going to be around for the launch. Get ready for the big day, because it's probably coming pretty soon.