Ever since I first read that the OS that runs on Glass was a tweaked version of Android, I was curious about running real Android apps on it. As I've mentioned before, what Google calls Glass apps aren't apps in the traditional sense at all, but services. Sadly, many Glass devs are accepting of Google's misnomer and now refer to Android apps running on Glass as "native" apps, when really they should just be called "apps." But whatever. The point is, Glass is still cool and it's even cooler when you run real, full-featured apps.
So, last Saturday, I set about learning how to sideload and that's when things got interesting. But there was a complication I overlooked. Even if I could get the Ustream app to sideload and run (as indie-journalist Tim Pool has), how could I log in without a way to type in my login credentials? Whoops.
Well, this wouldn't be much of a post if I didn't work out how to do it. That said, keep reading to find out how I did.
WARNING: While some in the media call this procedure "hacking Glass," I call it "following instructions" and "standing on the shoulders of better devs than myself." Seriously. To learn how to do this, all I had to do was do Internet searches for what I wanted to do and do what others have already done. Well, almost... I did have to get creative with entering text, since most folks don't seem to mind dropping cash on Bluetooth keyboards (and then adding said keyboards to the gear they carrying around) when they don't really have to.
WARNING MARK 2: After doing everything you are about to read, I discovered that system sounds on my Glass became very quiet. For a few days, I thought they simply weren't playing. No swipe or tap sound effects, no chimes chiming when I take photos or shoot video or when new content arrives. But while troubleshooting, I discovered, I could hear them, but incredibly faintly. I can live without all of these sounds except for that new content chime. Since the Glass display doesn't turn on automatically when new content arrives (like I think it certainly should) I have to rely on the chime to let me know when new content arrives. I don't know what caused the audio volume to drop so much, but I suspect it has something to do with the new settings APK I installed. The weird thing is that is some areas, the audio is fine and the microphone level isn't changed at all in any areas. I'm still debating a factory reset. I may wait for XE8, the next version of the Glass OS to see if that will fix it. I may not.
DISCLAIMER: BY CONTINUING TO READ YOU AGREE THAT YOU CAN'T HOLD ME RESPONSIBLE FOR ANYTHING THAT HAPPENS TO YOUR GLASS. I am telling you what I've done and how I've done it for research purposes only and describe only my own experience. I hope things work as well or better for use than they did for me. However, you might just get really unlucky. I hope that doesn't happen, but if it does, it's not my fault. Keep reading if you agree.
http://www.youtube.com/watch?v=NncvLaQl2ao
YES! It IS possible to stream live video from Glass! This is a short video I streamed from Glass via the Ustream app for Android which worked fine. Read on for more on the Ustream app!
Sideloading Native Apps
The first thing I searched for was how to sideload. Sideloading, if you're not familiar just means installing an app through means other than an app-store-style interface. So, downloading an APK to your phone and tapping on it in a file manager is sideloading. Unfortunately, it's not that easy on Glass. So, I followed the instructions on the Applied GlassWare blog. Basically, you have to install the Android SDK on a computer of some kind (if you're on Windows, the Java JDK is also required) and then use ADB to install apps to Glass.
What you end up with after following the AGW instructions is a way to access apps once you sideload them. See, the AGW instructions include a walkthrough of installing Launchy. Launchy is what it sounds like--a launcher like any number of launchers you can get for your Android device, only this one was coded specifically for Glass by Mike Giovanni (the same guy who created the infamous "Winky" app). It's basically just a list of what ever apps you've sideloaded onto Glass.
In order to get to Launchy, you swipe backward until you reach the settings card on Glass. Then tap once and you'll see something familiar--an Android dialog asking you what app you'd like to use to execute the tap. You can choose "Glass Home" (the stock settings app) or Launchy. Swipe forward and backward to scroll through the list.
Connecting a Keyboard
The first thing I (stupidly) did was install Dropbox because I wanted to automatically back up my photos and videos so I could more easily get them onto my iPad for editing (I download them from Dropbox via the Dolphin browser, import them into the iFiles app and then save them to my camera roll from there. Then, the videos go into Pinnacle). It didn't occur to me until I was staring at the user email and password fields that I had no way to type anything.
I tried tapping the touchpad in the hopes of seeing an onscreen keyboard appear, but no such luck. I then long-pressed on the touchpad and got to the voice command screen. I started to speak my user email for Dropbox but then noticed that the voice command screen wasn't actually a voice command screen at all, but a "Google search for anything you say" screen. So, that was dumb of me.
Then I plugged in the Gearhead-brand mini USB keyboard I use for my Raspberry Pi but it didn't work (frustrating since it works fine on my Craig-brand crap-tablet). Then I found a Google+ post by Dan McLaughlin that talks about getting a Favi-brand bluetooth keyboard to connect to Glass. I didn't want to spend any extra money on a bluetooth keyboard and with so many old touchscreen devices laying around my desk, why would I need to? Surely, there must be an app that would allow me to use one of my outdated myriad touchscreen gadgets as a BT keyboard, right?
Imagine if I could actually use my ancient iPhone 3G as a BT keyboard?? Of course, it seems like Apple's rules are too limiting for an iOS app to do such a thing, but thankfully, somebody over on the XDA boards came up with BlueputDroid for Android. I installed it via the Play Store onto my a href="http://www.amazon.com/gp/product/B00B9K6TK0/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B00B9K6TK0&linkCode=as2&tag=thepetecom-20">Samsung Galaxy Victory (a lowish end Android) and tried to connect it to Glass. No joy.
But no surprise since Glass, I figured, probably doesn't come with the interface capable of letting me OK the connection code. This is where Dan McLaughlin's post came in again. On it, he links to what I assume is a hacked or maybe a stock-Android version of a settings APK. Get it here but go thank Dan for posting the link here.
I sideloaded that settings.apk and tried again, and BlueputDroid connected.
But there were problems with either BlueputDroid or with that Settings APK
When I went to type with my usual keyboard of choice, the Google Japanese Input keyboard, no input showed up in Glass. However, I switched to the stock Samsung keyboard and input did show up. However, a lot of the key-mapping was off. For instance, the pound key ("#") was not to be found. It was on the virtual keyboard, but when I tap it, a "3" shows up in Glass. Not sure where the problem is--could be with that new settings apk or with BlueputDroid, I'm not sure. It's luckily not a deal breaker, though, since it works fine aside from many punctuation marks being mapped to the wrong keys. It's just a hassle not being able to use hashtags in things I post to socnets.
The Android Apps I was Able to Sideload onto Glass are...
Audioboo
Opens but couldn't get it to work due to interface constraints. Basically, the Glass display is too small for the app's UI and the UI displays sideways because the app doesn't support landscape (I hate apps that don't support landscape!). It also kept recording well past my account's time limit.
Twonky Beam
This is a great app and works on Glass. Forget Chromecast--Twonky Beam lets me beam videos from any mobile device to my eyeball, via Glass! I was actually watching some of the classic anime film "Ghost in the Shell" last night. Twonky's UI is cramped, though, and because of that, a little cumbersome. It's still usable, however. I do wish they'd streamline their interface. Even outside of Glass, it uses more space than it probably needs to.
http://www.youtube.com/watch?v=8ZhQc-ILok4
This is me while streaming one of my favorite anime movies directly to my eyeball via Glass and the Twonky Beam app.
Dropbox
Works great!! Also a little cramped/cumbersome, but since I'm only using it to auto-back up photos and video, it's no big deal. Can't manually upload though, since I can't find a virtual key that is mapped to the Android menu button. So, not perfect, but still uploads my media to Dropbox in the background, even while not plugged in.
File Expert
Opens just fine but since it's designed for a bigger display, it's really hard to use.
Ftp server
Opens and functions fine, but I had to use the touchpad on BlueputDroid to scroll so I could see the IP address to log in (another UI that's designed for a bigger display). But it works well and is encrypted so no one is going to be able to sneak onto your Glass via wifi.
FTPDroidPro
Slightly easier to use than Ftp server, but I don't see a way to get to the settings without that menu button I mentioned in my Dropbox description, above. So, currently, you're setting up an open FTP account, which is fine so long as you don't mind it not being password-protected.
WORKS! Alas, it also displays in portrait as Instagram still doesn't support landscape. But at least, you can get photos directly off of it and onto Instagram. Using IFTTT.com, I start at Instagram and then distribute my photos across the interwebz. Oh and the version of Instagram I sideloaded onto Glass didn't show me a video button. Not sure what that's about.
Skype
Seems to work just fine--I received a call from both a regular cell phone calling my Skype-In number and a call from a Skype user. Both calls worked fine. We even tried video. I'm really, really happy about this because it basically turns Glass into a wifi phone. However, once again, the app is designed for a bigger display, so it's a little cumbersome to use and spends too much time in portrait mode, even though much of the app supports landscape.
Translate
Functions, but because it's designed for a much bigger screen it is basically unusable. If you are really try hard, you can make it work, but the UI really doesn't work on Glass.
Ustream
Works fine! Seriously. Soooo excited about this! Sadly the quality is far from HD, but it's better than not being able to stream live at all. Go two videos up in this post to see what I mean. That video cross-posted to YouTube once I was done streaming. See it on the Ustream website here: http://www.ustream.tv/recorded/36856019
Vine
Works OK but is a little buggie. For a while, it was telling me that "video wasn't supported" even though I'd already shot a video and have since. Otherwise, it works fine so long as you don't mind portrait mode. Yep, another app that hates landscape people and wants to make us suffer neck pain.
Vital Player
My favorite video player for Android works, but not well. The color balance is waaaay off. I say stick with Twonky Beam as your player. I tried a very old version of the app, so that might be the problem. I'll try the latest version for when I do a standalone review of how Vital Player runs on Glass.
VLC
I found version 0.07 of VLC on http://papktop.com and installed it. Like Vital Player, the color balance was way off. Definitely recommend you stick with Twonky Beam for now.
Voice Recorder
The one I installed is very bare bones and doesn't record at the right speed. It also doesn't play back at the right speed. I'll try some other voice recorder apps and post about the one that works best. There are lots and I have no idea which one is the best on Android since I usually use iTalk for iOS to record audio. (Sorry! I'm bi-platformic!)
In Conclusion
If you are moderately fearless and have Glass, I recommend sideloading apps onto it. They won't always work, but when they do, it's AWESOME.
Well, assuming I can get my audio issue taken care of. Wish me luck! I really hope I don't have to do the factory reset! Honestly, though, the problem has largely cleared up. I can now here system sounds most of the time. They get faint every now and again, but don't stay that way for long. I'll post more on this if it gets worse. If it happens to you, it might be just as temporary.
Thanks so much for reading TheGlassLog at thepete.com! Please check back tomorrow for another post in TheGlassLog or subscribe to my blog’s rss feed or get my blog in your inbox!
[...] Sideloading real #Android Apps onto #Google #Glass and Livestreaming and Instagramming from Glass, thepete.com [...]
ReplyDeleteThere is another way to send keystroked by the Android debug tool. Turn USB debugging on in glass by tapping on system info in settings and choosing the relevant menu item. Then connect the glass to a computer by usb.
ReplyDeleteThen use the adb command in the platform-tools folder of the android SDK.
The way to input text is
> adb shell input "MY_TEXT"
You can have more granular control by using
> adb shell input keyevent X
where X is a number, documented in android developer docs. A particularly useful value for X is 82, which is the menu key.
Finally you can simulate touchscreen taps using the monkeyrunner tool in the tools folder of the SDK.
> monkeyrunner
..then in monkeyrunner..
>>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
>>> device = MonkeyRunner.waitForConnection()
>>> device.touch( 600, 200, MonkeyDevice.DOWN_AND_UP)
to tap at point 600,200 on the screen, for example.
By these mechanisms I was able to get the Audible.com app for android (barely) working on my glass, which is remarkably useful because I am an audible subscriber and the app is a very good fit to Glass use cases.
How did you make twonky beam work? I sideloaded it on Glass and installed the app on my phone but dont know how to make it work and control from my phone.
ReplyDeleteWell, this post is old info. Back before XE12 broke the hacked settings.apk we could use launchy to easily launch Twonky. I had an old version on their which allowed for landscape orientation and was quite different from the current version. I also used BlueputDroid to use my Android phone as a Bluetooth keyboard and touchpad for Glass. Does this info help? Sorry, I've been meaning to write more of my Glass-hacking adventures down but I haven't had time. Plus I am waiting for my v2 hardware swap to happen so I'm not too inclined to invest any time in my Glass until I have the new rig.
ReplyDelete