Comments on: Google responds to Google Now for iOS battery complaints http://isource.com/2013/05/02/google-responds-google-now-battery-complaints/ #1 Source for iPad, iPhone, iPod, Mac and AppleTV Sat, 04 May 2013 08:20:00 +0000 hourly 1 https://wordpress.org/?v=5.4.6 By: Daniel Castro http://isource.com/2013/05/02/google-responds-google-now-battery-complaints/#comment-55201 Sat, 04 May 2013 08:20:00 +0000 http://isource.com/?p=62127#comment-55201 maybe people are just simply using thier phones more

]]>
By: James Rogers http://isource.com/2013/05/02/google-responds-google-now-battery-complaints/#comment-55179 Fri, 03 May 2013 16:36:00 +0000 http://isource.com/?p=62127#comment-55179 In reply to Carlos Ribas.

Once an app has been “woken up” due to a significant change, can the app then request the GPS to be enabled, or does iOS do it? If that’s the case, is there a situation where that can get stuck enabled? Do you think this is a bug in iOS, or just an issue arising out of what Google is trying to do with this feature?

I’m also interested to know how common the usage of significant location changes is. I have and have used several hundred apps, but I don’t remember any off-hand that caused the solid arrow to remain on after they were shut down. I’ve seen some with geofences, and I have lots of GPS programs that work with standard location, but I had never heard of significant location before this app.

Thank you again for the very useful information.

]]>
By: Carlos Ribas http://isource.com/2013/05/02/google-responds-google-now-battery-complaints/#comment-55175 Fri, 03 May 2013 14:00:00 +0000 http://isource.com/?p=62127#comment-55175 Hi again James,

Just as a follow up, taking Google’s response into consideration. I think Google is not considering that iOS might misbehave based on what they have registered for with Location Services.

The way Location Services works for backgrounded apps is thus:

1. If the app has a specific value in it’s manifest, it can run the GPS chip in the background. Having that value tells iOS you’re allowed to run the GPS chip in the background, and if you don’t have it, then iOS will shut it down when your app terminates, regardless of what your app does. An app with this value set cannot “wake itself up” — and, it goes to sleep if it turns off the GPS chip. This means that apps cannot suddenly turn on the GPS chip whenever they want, no matter what. They have to be running, not sleeping, and they go to sleep the first time they turn off the chip. That prevents them turning it back on until the user launches the app again. UNLESS :

2. Any app can sign up for significant location changes (cell tower-based). This will let the app fall asleep, but wake it up if a significant location change occurs. Apps with the value set as mentioned above can turn on the GPS chip in response if they so desire. However, if they turn it off, they’ll stay asleep unless another significant location change triggers.

3. Any app can *request* to monitor a geofence. This behaves just like significant location changes — that is, the app can go to sleep and it will be woken up by iOS as-needed. Instead of waking the app up any time the phone changes cell towers, the app will be woken up when iOS has determined the geofence boundary has been crossed. This requires the much more accurate WiFi positioning to be really useful. Again, once the app is woken up from the background, if it has the manifest value set, it can turn on the GPS chip, and as long as it does not turn it off, it can continue monitoring.

That said, it sounds like Google Now is just using significant location change monitoring while running in the background. It may also be using a proximity fence around your current position as a possible way to get more accurate data (e.g. set a 100m fence around the present location every time iOS wakes you up, to increase how often you wake up even if you don’t change cell towers).

Something to consider, since you’re interested in testing this and narrowing it down, is that significant location changes requires a cell radio. So, if you test Google Now on a device that has no cell radio, you should see either no arrow or a hollow geofencing arrow. If you see a continuous solid arrow on a device with no radio (like an iPad), that would be surprising to me.

Google’s statement is basically just reciting what Apple tells us iOS developers about Location Services. I get enough support e-mail traffic about HoursTracker’s Location Awareness feature to know that there’s clearly some situations in which Location Services does get into an unexpectedly battery draining situation. However, those are likely very bugs and I don’t think Google wants to go against their partner Apple and go tell everyone something like “We’re doing what we’re supposed to do, iOS must be broken.” At the same time, they’re not in control of whether or not they are using GPS, WiFi, or Cell Towers.

Apple just calls it “Standard location” (gps), “significant location changes”, and “geofences”. Apple says they drain less battery, in that order, and they say that significant location changes requires a cell radio, whereas geofences works without one and uses WiFi if available. They don’t ever explicitly rule out the possibility that these features will use the GPS chip. It is possible that Location Services resorts to the GPS chip if it hasn’t gotten a location any other way in too long of a period of time.

I think it is safe to say that Google Now behaves the same as any iOS app that uses significant location change monitoring. It is likely also safe to say that sometimes, that causes battery drain and developers don’t know why.

]]>