Our research lab has several pair of Google Glass that we've been using in our research. Recently, one pair (that had been sitting in storage) stopped working - we booted them up about a month ago (they hadn't been used since April 2014) and during the boot sequence, we received several "stopped unexpectedly" errors (for Home, Camera, and Voice functions).
We spoke with Google twice on the issue, and they told us:
(1) The Glass likely lost a connection during a software update, so to do a factory reset we'd need the original device that the Glass were tethered to to initiate a factory reset. Sadly, we no longer have this device, so we cannot initiate a factory reset.
(2) The Glass are out of warranty, so they will not offer any further customer service, other than to direct us to StackOverflow. (stings a bit, to be honest)
So, my question ... there has to be a way to manually reset the Glass via USB? Any help or advice from this community would be incredibly helpful!
You can do factory reset in Google Glass by doing this:
Tap the touchpad to activate Glass.
From the Home screen, swipe backward on the touchpad until you see the Settings bundle.
Tap into the Setting bundle and swipe forward until you see the Device Info card.
Tap again and swipe forward until you see Factory Reset.
Another method can be done using Recovery Mode.
To access Recovery Mode, turn off Glass. Hold the camera button, then press the power button once. Continue to hold the camera button for about 10 seconds, and Glass will go into Recovery Mode.
In Recovery Mode, you have the option to:
Reboot normally
Reboot into fast boot (This is mainly used by developers)
Factory reset (Removes your account, pictures, videos, and Glass settings from this device. If your Glass is having issues, this will give you a fresh start. Warning: If your pictures and videos haven’t been synced to Auto Backup, they will be erased. If you want to keep them, connect Glass to your computer using the USB cable and manually transfer the files.)
Sideline from adb (Also for developers)
Check also this thread for more information.
I had a similar issue with 2 pairs I have. I contacted Google support on this and they told me to power them on and leave them close to the last known WiFi access point they were connected to.
This has worked for 1 pair. The other pair still has the same issues. I'll update if I find anything that worked.
Good luck
I have a similar problem. Unfortunately, same boat ... device is out of warranty and turning the device on and update itself using the original Wifi or the paired phone is non-existent. Also seeking any way to refresh the "image" of the OS/program on the device via USB.
Related
I use an Android phone to do some basic Bluetooth compatibility testing in a remote testing environment.
In order to automate the test phone with Appium or view it's interface using Vysor, I have to allow a "USB Debugging" pop-up. This pop up gives the option to "Always Allow Connections from this PC" which I select each time. However, this authorization seems to reset after some period of time and I can't figure out why.
Multiple users access the phone from their own user accounts, and USB Debugging has to be authorized for each of these users individually, but whenever the authorization resets, it resets for all users and all users must be individually re-authorized.
These resets tend to happen on average about once per month.
My first thought was the phone must be updating, but Automatic Security Updates are disabled on the test phone, so I don't think that is the issue.
The last time I had to re-authorize USB Debugging, I noticed this pop-up on windows which occurred suspiciously the day before I had to re-authorize, but I don't know what caused this.
Does anyone know what might be causing these resets? Given how our testing is remote, it can be a major inconvenience to re-authorize the phone since the resets occur unpredictably.
We are testing several Lenovo Tab 4 Android (7.1.1) tablets as telnet clients over wireless LAN for part tracking (barcoding reading) in our manufacturing plant. Hopefully, these will soon replace very expensive Honeywell handheld computer/scanners that ride on every forklift. These handhelds have hardware keyboards, and the software they communicate with through telnet have no problems reading function key codes sent.
On the tablets we are using the Termius ssh/telnet client with the Hacker's Keyboard app, and it worked perfectly until last week. Suddenly the effect of tapping on a function key equaled the effect of tapping the ESC key, which basically causes the program to exit whatever form is active and return to the parent menu.
According to the settings for all related apps, the versions have not changed since everything was working, and there is no sign that any of the settings for the apps have been changed. We get the identical behavior on all tablets.
On one of the tablets, I have installed and tested several other (the most popular) ssh/telnet clients and do not have any problems with function keys. However, none of these alternatives provides a setting that allows "keep alives", or connection persistence, etc. that can keep the connection from timing out after 60s of inactivity. So that presents a completely new problem. Termius will stay connected all day if you like. We only need 5 min, and that's how it's configured. BUT, function keys don't work any more. So it comes down to "live with 60s timeouts" or "live with no function keys". Neither is acceptable.
PS: There were no changes to our barcode system server, or to LAN configuration, from the time the function keys worked until they didn't.
I'd appreciate any help or suggestions for next steps.
There's absolutely heaps of these questions out there, all with a seemingly random assembly of answers that don't really talk about why, and don't offer anything that at least covers ALL of the reasonable approaches.
I'm running ADB on OSX, but I've got other team members using Linux (Ubuntu) and I occasionally use Windows. OS doesn't really seem to matter, so long as the relevant USB driver has been installed on Windows.
I've got a heap of different makes and models of phone that I'm swapping in and out. Sometimes a phone that previously worked stops being recognised by adb devices. So not really specific to a particular phone.
I've got a USB cable that I know works, for several makes/models of phone.
But still, when I get a new phone to try I still have to faff around with it to get it working.
What I'm after is a checklist of sorts, that results in a reasonable chance of success in getting adb devices to work.
So here's what I've found:
Hardware:
Good USB cable - if it works for one phone it will probably
work for others. If it consistently stops working, throw it away and
get another.
Phone/Tablet/Device - Pre-requisites:
Make sure the phone is charged up - at least 30% seems to be a common
minimum.
Get all system updates and app updates done.
Enable Developer Mode. Settings->About phone->Build number - tap 7 times
Computer - the 'turn it off and on again' approach:
This is useful to know, but doesn't generally get things working. It goes like this:
adb kill-server
adb start-server
adb devices
If you don't see your device after adb devices then the above isn't the answer (but it's still good to know).
Phone/Tablet/Device - the 'wipe it and start again' approach:
This is basically clear your current settings and then re-establish them.
In Developer options, under Debugging:
Turn OFF USB debugging (some phones won't let you click this option - thanks LG)
Click/Tap Revoke USB debugging authorizations
Turn ON USB debugging, answer OK to the first dialog
And if you device is already plugged in:
WAIT, for a second prompt asking if you want 'Allow USB debugging' and click 'OK' - not every device will trigger this second prompt straight away, but give it 5 to 10 seconds just in case.
Now, get permission for EVERY use of the USB connection.
Swipe down from the top and tap on the item for USB connection.
Systematically work through every option your device provides and grant permission when asked. Don't do just one option, do ALL of them, including Charge phone.
Having given permission for one of the usages of the USB connection some devices will give permission for everything - but most won't. For the majority you should go through each one and give the permission. Just to add to the confusion some devices will require you to revisit an option a second time before they give you the prompt asking for permission (thanks again LG).
Now try adb devices again. Still nothing? Go back through the USB usage options again from start to finish (I kid you not).
You may still need to reboot the device and/or swap between media transfer and photo transfer to get it showing up on adb devices.
So what if a previously working device stops working? Go through the 'wipe it and start again' approach first. It's likely to be the most effective. but I'd definitely check whether its time to retire the USB cable as well.
I am writing an android app that will interface with a Sony SmartEyeGass. I want to detect the presence and connection of the device, prior to the user starting functions that use the glasses.
Unfortunately, I am having trouble reliably detecting if the device is present or not. Watching for the START, STOP, etc events is not solving my problems because I often get START events received by the ExtensionReciever when I start the application and the ExtensionService, despite having the glasses powered off. Running the ControlExtension that shows stuff on the glasses has no problems drawing onto nothing.
How can I get information from the SmartEyeglassAPI indicating whether the device is present or not? I have not been able to find this digging through their online documentation nor in the samples.
There is no API as part of SmartExtensions to check whether the glasses are connected or not. You should be able to detect whether the glasses are connected by listening for connecting Bluetooth devices and checking the device name.
This API may work for you:
http://developer.android.com/reference/android/bluetooth/BluetoothHeadset.html#getConnectedDevices()
I am struggling with an issue relating to the licensing service and network connection.
The bottom line is I want the LVL to work if the user is in the middle of nowhere with no signal, but I don't want them to be able to 'cheat' and turn off the data connection.
I already have detected and intercepted airplane mode, but some phones or apps let you turn data connection on or off. (some don't)
My Epic 4g allows this, and I think the hidden API letting us control this is not working past 2.0 release. (iTelephony)
However is it possible to simply detect if the connection was disabled and not change that fact but simply react to it?
I can already detect whether or not there is a data connection or not- what I want is to tell the difference between a disabled antenna and simply not having signal. The market licensing check will fail and I want to give 'em a pass if they legitimately have no signal, but not if they forced it off.
Well, I don't need to check whether net has been disabled outside of airplane mode,
I found a different solution here:
http://code.google.com/p/androidbest/
What this code does is force the user to authenticate at least once. Then if it fails to connect to the LVL server, it uses a cached authentication. I had to change it a bit, notably it was launching the next activity twice, and now it solves my issue adequately.