1

I am running a simple application that receives and displays the values of Bluetooth Low Energy advertisement packets in real time.

The Glass heats up in about 5 minutes and touch commands stop working. The Glass is not super hot, but warmer than feels comfortable.

Commenting out the Bluetooth stuff reduces the heating considerably.

How can I make this application workable on the Glass?

a00
  • 111
  • 2

3 Answers3

3

Without seeing the exact code you're using it is difficult to diagnose, but from your description we might be able to make a guess.

It sounds like you're using BluetoothAdapter.startLeScan() without setting up a timeout to stop the scan, and then scanning for an extended period of time. The documentation at http://developer.android.com/guide/topics/connectivity/bluetooth-le.html#find points out:

Because scanning is battery-intensive, you should observe the following guidelines:

  • As soon as you find the desired device, stop scanning.
  • Never scan on a loop, and set a time limit on your scan. A device that was previously available may have moved out of range, and continuing to scan drains the battery.

Battery drains typically correspond to Glass overheating.

There isn't a lot you can do to solve the problem, but it may involve changing how you think about what you're doing.

If you're doing this in immersion mode, you may want to switch it to a live card instead. You may also not really want to scan "forever", but may want to try scanning for a fairly short period of time, then turning it off for a short period of time, and repeating this. Or you may want to turn it off for a period of time once a new packet is received. Your exact needs may dictate this, but given the characteristics of how often advertisement packets are sent out, you may not need to be constantly listening to get all of the packets.

Prisoner
  • 49,922
  • 7
  • 53
  • 105
0

As a current Glass developer myself, I've found that there isn't really any good way around this.

We're all facing this problem. There isn't much room, every is tightly packed, and what Glass is having to do is complicated. It will heat up if you are constantly scanning. Especially when you are taking videos - Glass will become very hot.

I found that lowering the screen brightness helps a bit, at least with the battery life, if nothing else.

This is how you set the screen brightness to its minimum, in case you do want to try it and see if it helps:

WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 0f;
getWindow().setAttributes(lp);
Alex K
  • 8,269
  • 9
  • 39
  • 57
0

I'm currently investigating workarounds for this heat problem as well. Glass overheats quickly when capturing previews and doing heavy calculations or image processing on it.

This paper is very informative:

http://arxiv.org/pdf/1404.1320v1.pdf

Title: "Draining our Glass: An Energy and Heat Characterization of Google Glass"

Pieter Heemeryck
  • 664
  • 5
  • 13