Related
For the past few days, I've been dealing with what appears to be a disproportionately huge group of Evo owners (relative to other Android phones) who've been having crashes with an app I wrote that appear to be caused by the unavailability of network-based location services. I did some research, and it looks like a LOT of Evo owners have been doing things that (temporarily?) disable network-based location services in an attempt to keep the battery from dying too quickly.
Are Evo users who do this literally going into Settings and disabling network-based location services outright, or are there one or more apps/hacks that supposedly disable it only when "it's not being used"? If there are, what does an app that depends on network-based location services have to do to make sure that whatever is supposedly enabling network-based location services "when necessary" realizes that it is, in fact, necessary... and do it in a way that won't cause the lookup request to prematurely or needlessly fail?
Like I've said, I've had a few users with other phones have problems due to the app's current absolute dependency on the availability of network-based location services... but with Evo owners, it's more like a nonstop hailstorm of complaints. Rewriting the way the app handles location to eliminate that absolute dependency is my next major project, but it's going to take me at least a week or two to finish, and in the meantime I'd love to be able to find a temporary solution that I can patch and release tonight that will solve the worst of the problem for the majority of Evo users in the meantime.
Speak up brother. What is the App (so people who don't have the slightest clue as to how to relate your user name with the buggy app you have)?
I'm not sure why anyone would do this, aside from "privacy" concerns... It will not help with battery life on it's own. If your GPS is turned off, your device gets it's relative location via the cell phone tower's coordinates. This information gets transmitted to your phone regardless if you have it disabled to accept it.
They are probably thinking that if they disable it, other services won't try to update information based on your location. Instead they should just adjust any services that are auto-updating.
I can go >24hours before I need to charge my phone with moderate usage throughout the day (without using 4G). I can post SystemPanel screenshots if anyone is interested.
mattrb said:
Speak up brother. What is the App (so people who don't have the slightest clue as to how to relate your user name with the buggy app you have)?
Click to expand...
Click to collapse
OK, if it makes you happy, I didn't personally write it that way. It's a legacy app I'm helping to fix. In the meantime, I'm trying to put out as many fires as quickly as I can. That said, I'm not going to condemn the original author. All things considered, it was a perfectly reasonable decision for him to make. It was his first major Android programming project, and his immediate runtime environment was a Droid on Verizon. 99% of his Android-owning friends were Sprint or Verizon. For the most part, on Sprint & Verizon, network-based location services work really well. The app's dependency on them didn't really bubble to the surface as anything more than likely user error until lots of non-Americans started showing up with phones that couldn't be automatically assumed to have inseparably-bundled mandatory data service.
Truth be told, America is a lot like Japan -- cellular networks that are almost proprietary to the national market and work in ways that aren't necessarily consistent with the way things work elsewhere in the world, but utterly ubiquitous and totally dominant within it. I'm sure that right now, plenty of Japanese developers are writing Android apps that assume every phone supports network-level low-latency "Push to Talk" capabilities (IDEN's "killer app"), or some other feature that's ubiquitous in Japan and (almost) unheard of elsewhere. Six months from now, they're going to be scratching their heads wondering why it crashes on every phone in Europe and most phones in America (Sprint, and I think Verizon, try to emulate IDEN's PTT on CDMA by buffering the audio stream on a server, then sending a SMS to the recipient's phone that triggers its download and streaming a couple of seconds later).
Anyway, I digress. Getting back to the original question, are Evo owners who disable network location doing it manually, or are they doing it in a way that can be worked with cooperatively by apps in order to get it to automatically turn it back on when needed?
Actually, I have theory #2 about why Evo owners might be having problems, but it's pure speculation at this point. I'm wondering whether there might be Evo owners who've explicitly disabled EV-DO and 1xRTT to try and force the phone to use WiMax in areas where it might otherwise try to fall back to the older modes, and the possibility that even NON-network location service DEPENDS on EV-DO/1xRTT for aGPS data transmission of the raw telemetry data. In a way, it makes sense... the WiMax network is totally parallel to the CDMA2000 network, and it's not inconceivable that there might BE no data route between the Sprint WiMax network and the servers that handle aGPS queries. Especially if there aren't any real-world locations where Sprint WiMax is available, but CDMA2000 data is not.
If you go into the settings you can disable the network location, but there are ways for an app to ask if the user wants to turn the setting back on.
Evo owners can't disable 1xRTT otherwise standard calls and text messages won't work anymore. They can change settings if they have their MSL code such that EVDO isn't ever used however.
Well, maybe "disable" is a strong term. I know that on a Hero, there's a network setting somewhere that allows you to tell the phone, "Use EV-DO, or don't do data at all". It doesn't affect the operation of voice or sms -- only the phone's willingness to fall back to 1xRTT for internet access if EV-DO isn't available. I'm assuming the Evo has a similar setting that goes a step further and lets you dictate "WiMax or Nothing".
Here's how it could theoretically affect location services: obviously Sprint does aGPS. By law, it HAS to do it for e911 purposes. HOWEVER, I think that non-e911 aGPS lookups on Android phones get diverted through Google (or at least an aGPS service hosted by Google) unless you pay Sprint extra for navigation service. Under those conditions, if you told the phone to use ONLY WiMax for internet access, and you were in an area where only EV-DO and/or 1xRTT data were available, you could have a situation where the phone can do e911 location, but wouldn't necessarily have that info available for use by other applications (vis-a-vis most of HTC's WinMo 6 phones). If the phone couldn't use WiMax, and the user dictated "WiMax or Nothing", the phone couldn't reach Google. Without Google, there'd be no free aGPS for Android apps to consume.
The above is pure speculation, of course. As a practical matter, Sprint itself can't/won't give a coherent explanation of where the line gets drawn between Sprint and Google for (a)GPS service, which makes troubleshooting location-related problems that much more fun. Personally, it wouldn't surprise me in the least if late-model HTC phones DO have 100% of the hardware onboard to turn satellite telemetry into latitude/longitude/altitude coordinates, but the underlying software fails without realtime network connectivity anyway because it still tries to involve a server somewhere for some reason.
Look, this is what happens to me and I think it's a bug.
When I turn off GPS for a while, like for 12 hours, and then I turn it on, I still see the "Location" icon crossed out. At first I didn't know what was going on. I thought it was the GPS icon, but it wasn't, it was the location services being turned off.
So I reproduced it several times and this is what happens. When you turn off GPS for a while, the location setting will be turned off also, and it will remain off even after you turn on the GPS again. Which IS A BUG. That's not an expected behavior. So you may be right.
baiatul said:
Look, this is what happens to me and I think it's a bug.
When I turn off GPS for a while, like for 12 hours, and then I turn it on, I still see the "Location" icon crossed out. At first I didn't know what was going on. I thought it was the GPS icon, but it wasn't, it was the location services being turned off.
So I reproduced it several times and this is what happens. When you turn off GPS for a while, the location setting will be turned off also, and it will remain off even after you turn on the GPS again. Which IS A BUG. That's not an expected behavior. So you may be right.
Click to expand...
Click to collapse
My experience doesn't mirror that at all. When I turn GPS on (which I am impressed to say has it finding satellites many times faster than my old HTC Fuze) the location disabled icon changes almost immediately. I saw this a lot over last weekend when I was doing a lot of phone based navigation.
Yes, I forgot, I'm in NY, and in Manhattan very strange things happen when you go in and out the subway with signal and no signal several times a day for periods of time from minutes to an hour.
Many programs that are expected to work crash when there is no signal. Or when you run applications in the subway with no signal, the gadget freezes sometimes. Maybe this GPS thing is also one of those glitches. Maybe it's a combination of turning on or off the GPS, and then the loss of signal for a while. It still happens to me, but I got used: every time I turn back on the GPS after being disabled for MANY HOURS (12? 24?), I have to turn back on the Location setting.
merak69 said:
I'm not sure why anyone would do this, aside from "privacy" concerns...
Click to expand...
Click to collapse
I turned off network location services for one simple reason....using it caused my location to off by at least 1/2 mile. So it seemed pretty useless to me.
pixelpop said:
I turned off network location services for one simple reason....using it caused my location to off by at least 1/2 mile. So it seemed pretty useless to me.
Click to expand...
Click to collapse
It's basing your location on the information from the cell phone tower. It isn't meant to give you a precise location like GPS can (this is why its called aGPS). The point is to give a general location so that apps that need to know what city you are in (weather apps for example) can figure it out to show you information for where you currently are.
If you want precise information, turn on full GPS and you are good to go.
My point was disabling location services entirely will not save you any more battery life vs leaving network location on (excluding full GPS obviously). What will save you battery is turning off your other services (Facebook, Twitter, News, etc) to only update when you manually say so or setting their update schedules to much longer frequencies.
Here's how it could theoretically affect location services: obviously Sprint does aGPS. By law, it HAS to do it for e911 purposes. HOWEVER, I think that non-e911 aGPS lookups on Android phones get diverted through Google (or at least an aGPS service hosted by Google) unless you pay Sprint extra for navigation service. Under those conditions, if you told the phone to use ONLY WiMax for internet access, and you were in an area where only EV-DO and/or 1xRTT data were available, you could have a situation where the phone can do e911 location, but wouldn't necessarily have that info available for use by other applications (vis-a-vis most of HTC's WinMo 6 phones). If the phone couldn't use WiMax, and the user dictated "WiMax or Nothing", the phone couldn't reach Google. Without Google, there'd be no free aGPS for Android apps to consume.
Click to expand...
Click to collapse
Your phone doesn't communicate with Google. Sprint has their own aGPS servers but I think you might misunderstand what their purpose is. The "a" part of aGPS means Assisted, but only assisted in the fact of giving the chip the information it needs to lock on to the true GPS signals faster based on your current location.
For example: If you used a GPS device that wasn't assisted and its known internal satellite database was out of date, it'd have to search for awhile to location any/all satellites in the sky. On the flip side, an assisted chip can use the network server to download satellite info (ids, frequencies, etc) to show which satellites are visible for your given rough location. This enables hardware lock to happen faster.
However those aGPS servers are optional since the chip has a hybrid mode of operation:
a) If you have true GPS on, obviously it uses GPS to determine your location, down to potentially 3-4 meters.
b) If the chip can't get a satellite lock or you have true GPS turned off, the chip uses multiple known tower locations in combination to triangulate your location (based on signal strength to known towers). The fewer the towers it has access to, the less and less accurate your known location becomes. This works even with 3G and 4G disabled because it transmits the data over 1xRTT (you can easily test this in Google Maps).
In the second situation (b), I've seen where tower triangulation has narrowed my location down to 100 meters. I've also seen where it can't get a lock on multiple towers reliably such that the chip puts my "center" location as the actual location of the tower with an accuracy rating of 2000 meters. This is what Pixelpop is mentioning above about accuracy.
merak69 said:
Your phone doesn't communicate with Google. Sprint has their own aGPS servers but I think you might misunderstand what their purpose is. The "a" part of aGPS means Assisted, but only assisted in the fact of giving the chip the information it needs to lock on to the true GPS signals faster based on your current location.
For example: If you used a GPS device that wasn't assisted and its known internal satellite database was out of date, it'd have to search for awhile to location any/all satellites in the sky. On the flip side, an assisted chip can use the network server to download satellite info (ids, frequencies, etc) to show which satellites are visible for your given rough location. This enables hardware lock to happen faster.
However those aGPS servers are optional since the chip has a hybrid mode of operation:
a) If you have true GPS on, obviously it uses GPS to determine your location, down to potentially 3-4 meters.
b) If the chip can't get a satellite lock or you have true GPS turned off, the chip uses multiple known tower locations in combination to triangulate your location (based on signal strength to known towers). The fewer the towers it has access to, the less and less accurate your known location becomes. This works even with 3G and 4G disabled because it transmits the data over 1xRTT (you can easily test this in Google Maps).
In the second situation (b), I've seen where tower triangulation has narrowed my location down to 100 meters. I've also seen where it can't get a lock on multiple towers reliably such that the chip puts my "center" location as the actual location of the tower with an accuracy rating of 2000 meters. This is what Pixelpop is mentioning above about accuracy.
Click to expand...
Click to collapse
You're correct that aGPS doesn't go through Google. It's presumably handled by the radio and Android is never aware of it at all.
Cell tower location/triangulation is different however. The OP is correct that it does go through Google, as the US CDMA carriers are totally unwilling to allow outside access to this information like GSM carriers do. Google built and maintains their own database of tower info, and that is what populates your rough location in Android. It is not aGPS data from Sprint's servers that is allowing that.
You want a hack? Well use the last known position, if it's historical then post a message "wtf turn on location services, if you want picture phone to work".
The app may not work but it won't crash as it has a location. More so it blames the user. lol
Post a little line to the location service enable semaphore, "who turned off the lights?"
You can get location assisted position from Wi-Max just like you can get it off Wi-Fi. As far as I know there is no app to disable Mobile Network Location on demand. If your having issues with it than users are going in and disabling it by hand through the settings. The problem probably is that 90% of the know it all bloggers advise to disable network position because they think it does something for battery life.
I'm also willing to bet good money that Google is handling the network location. Why else would they have a location server(supl.google.com). Only to let Nokia users use it?
-------------------------------------
Sent via the XDA Tapatalk App
I've noticed that there are areas where the GPS doesn't work, even outside with no sky obstacles. One of them is on 113 st. between Broadway and Amsterdam avenue (NYC), right next to a building tagged "Cell Motion Laboratories." I've been there twice since I have EVO and the GPS is off like 10 buildings when I'm in the building next door. From outside, it just looks like any other Columbia University residence.
(Yes, my location settings were enabled and GPS was on).
ZIP 10027.
I just searched that lab, and it has nothing to do with cellphones, but with real cells (biological lab for kids, I think).
bedoig said:
You're correct that aGPS doesn't go through Google. It's presumably handled by the radio and Android is never aware of it at all.
Cell tower location/triangulation is different however. The OP is correct that it does go through Google, as the US CDMA carriers are totally unwilling to allow outside access to this information like GSM carriers do. Google built and maintains their own database of tower info, and that is what populates your rough location in Android. It is not aGPS data from Sprint's servers that is allowing that.
Click to expand...
Click to collapse
What you are talking about for triangulation is software level functionality part of Google Maps and Google Maps only and yes it contacts their servers to try and guess where you are. Google does build out their own "database of tower info" just like they collect all sorts of other statistical information (you agree to this when you turn on location services), but part of the aGPS standard is that every cell phone tower, GSM or CDMA, transmits its coordinates to your handset.
What I'm talking about is all strictly in the hardware, but perhaps the word "triangulation" was the incorrect choice of word when talking about aGPS, however it is similar... The aGPS functionality in our phones is tightly integrated into the radio chip (Qualcomm RTR6500 CDMA2000) and this chip does not need to contact Google or Sprint to determine your rough location from a tower (turn off all internet access and you'll see what I mean). It can contact Sprints servers through the network (when it is able) to further plot your location based on the data transmitted to/from the aGPS server.
When you first use the EVO, there is a screen that asks if you want to share anonymous location data. That setting is also tied to network-based location services. That is, if you disable anonymous location sharing, it also disables NBLS entirely. You can thank either Google or HTC (not sure which) for their greed on that one.
I just checked and mine was set to off. not sure what sets it to that as I never touch that setting.
Just adding my 2 cents.
Samsung just wrote that apparently the use wireless networks, which is the option above use gps satellites must be selected to get proper locks.
I was skeptical because i just assumed that when I went exploring I selected it, but it actually wasn't.
Put it on, and agreed to the disclaimer and then right away the maps got my location and the live wallpaper map got my location.
you'll get an email saying google knows where you are and yeah its pretty ****ty that you have to do this, but it does work. at least for me.
not a real fix, I've had that on forever and still dont get a proper lock
Confirming that this does seem to work. It might merit mentioning that I've also messed around with my GPS settings quite a bit as well.
Regardless, I got a lock within two seconds after opening Google Maps. Cheers!
-deuX`
The phone used networks to locate you. Not GPS.
PuffinNugz said:
The phone used networks to locate you. Not GPS.
Click to expand...
Click to collapse
Oh, good to know. Thanks for the info!
-deuX`
This is to assist in the GPS lock. This is not a fix.
True it isn't a real fix, hence the "quick" fix in the title.
it's just another way to help maps get a lock.
obviously this won't help in no service zones but if you're using the data anyways might as well use it to help.
plus it unlocks all the fun location based services, and that maps live wallpaper is pretty freakin sweet!
This will only give you the location of the nearby cell tower. Unless you live under the cell tower all the time, I don't think this is useful. It might be useful for things like check the nearby stores and attractions. But will not give you navigatable fixes and does not speed up your GPS lock. If you're using Google maps, try to zoom out, and you will notice a big circle. Your location is anywhere inside that circle.
That's Samsung tip is pure BS and Engadet should be ashamed to even believe in that BS.
I not only allowed the use of wireless networks for location, but also changing the GPS setting to MS Based to allow for simultaneous use of triangulation and assisted GPS... before this change I NEVER got a successful GPS lock...after I changed the settings I finally can get a GPS lock after about about 3 minutes with direct line of sight outdoors.
Sent from my SAMSUNG-SGH-I897 using XDA App
foxbat121 said:
This will only give you the location of the nearby cell tower.
Click to expand...
Click to collapse
Not quite. its actually doing cell tower triangulation, using the signal of all nearby towers your phone sees. In the city, this can be pretty accurate and is rarely off by more than a couple blocks. To see the accuracy, turn off GPS and click 'locate me' in google maps. The blue circle around your location shows the margin of error. The more towers you are in range of, the more accurate the fix.
As far as helping GPS, all this location can really do today is help you grab the most appropriate gps almanac/ephemeris info - if youve got an internet connection. I suppose it could possibly also be used in conjunction with the gps error in some kind of a filter to improve accuracy, but as far as I know that is not being done.
I actually started getting quicker locks with just using the GPS and having the wireless networks unchecked
Just an update:
I changed the SUP/LCP setting to Auto-config and the Operation mode to MS Based. I tend to get a gps lock within a minute or two with it sitting on my dashboard. I also tried it with the"Use wireless networks" setting turned off and it worked the same.
Also, I did try out the MS Assisted SUP/LCP setting and I was able to get GPS signal while indoors, but it was less accurate all around.
Sent from my SAMSUNG-SGH-I897 using XDA App
I'm not saying it's completely 100% accurate, but much in the same vein that an iPod Touch can get a location using just the wi-fi this is using much the same.
it uses whatever a-gps it can and then it helps with the cellular data. triangulation. it's useful and if it keeps getting me a signal then its all good
I'm currently travelling abroad and I'm therfore on roaming with data traffic disabled. I experience that the GPS is unable to find my position under these conditions and remains on the last known position (or it might take even longer than the few minutes i was willing to wait).
Whereas with data enabled or wifi i get a really fast lock.
Can anyone confirm this behaviour. Imho it should also be possible to get a lock (although slower) without any data connection. At least this is the way it works on my ios devices. It might take a minute or two but it works.
Any thoughts/experiences on this?
Some_One_Else said:
I'm currently travelling abroad and I'm therfore on roaming with data traffic disabled. I experience that the GPS is unable to find my position under these conditions and remains on the last known position (or it might take even longer than the few minutes i was willing to wait).
Whereas with data enabled or wifi i get a really fast lock.
Can anyone confirm this behaviour. Imho it should also be possible to get a lock (although slower) without any data connection. At least this is the way it works on my ios devices. It might take a minute or two but it works.
Any thoughts/experiences on this?
Click to expand...
Click to collapse
If the phone's been moved a dramatic amount of distance, the GPS almanac data will be really off. The data/wifi connection helps it locate your position and give the map a hand in finding you.
If you can get data somehow, you can try getting the "GPS Status and Toolbox" app from the Market, and then one of the menu options, perhaps advanced, is to download the GPS almanac data. That should give you quicker locks.
distortedloop said:
If the phone's been moved a dramatic amount of distance, the GPS almanac data will be really off.
Click to expand...
Click to collapse
It was only a few hundred meters from the last known position. That's why I'm a little bit concerned?
Thanks for the tool tip will definately have a look at it.
Some_One_Else said:
It was only a few hundred meters from the last known position. That's why I'm a little bit concerned?
Thanks for the tool tip will definately have a look at it.
Click to expand...
Click to collapse
Oh, yeah, that sounds like a problem. Even several miles shouldn't make that big a difference.
go to starbucks or some restaurant/bar/cafe with free WiFi
then use the phone there, and turn on GPS to get it updated
I was experimenting a little bit today and it seems to me that this is primarily a google maps problem.
It seems that google maps falls back to the last known position if you have no gps fix. For a strange reason however this last known position is not neccesarily the effective last known position but the last position when I had used google maps with an active internet connection position (which makes no sense imho).
This does not happen always and as long as you have an active data connection you will probably not run into this issue.
Some_One_Else said:
I was experimenting a little bit today and it seems to me that this is primarily a google maps problem.
It seems that google maps falls back to the last known position if you have no gps fix. For a strange reason however this last known position is not neccesarily the effective last known position but the last position when I had used google maps with an active internet connection position (which makes no sense imho).
This does not happen always and as long as you have an active data connection you will probably not run into this issue.
Click to expand...
Click to collapse
That makes some sense, since Google Maps relies on WiFi for it's initial fix if you have the enhanced location settings checked on.
Not really, does it? Example:
Pos1: wifi, hotel no GPS
Pos2: showing Pos1, after GPS fix showing correct position
Pos3: showing Pos1 (i would expect Pos2 now) after GPS fix showing correct position
Pos4: showing Pos1 again, whe no GPS fix
i would expect it to always show Pos(n-1) when there's no GPS fix and not always again Pos1. This is the way it works on ios devices which i think is correct.
Further i noticed that the blue circle (that should br really big if position is uncertain) does not grow respectively reflect this uncertainty by its size.
Therfore i guess: --> Defect in google maps 5.0?
Some_One_Else said:
Not really, does it? Example:
Pos1: wifi, hotel no GPS
Pos2: showing Pos1, after GPS fix showing correct position
Pos3: showing Pos1 (i would expect Pos2 now) after GPS fix showing correct position
Pos4: showing Pos1 again, whe no GPS fix
i would expect it to always show Pos(n-1) when there's no GPS fix and not always again Pos1. This is the way it works on ios devices which i think is correct.
Further i noticed that the blue circle (that should br really big if position is uncertain) does not grow respectively reflect this uncertainty by its size.
Therfore i guess: --> Defect in google maps 5.0?
Click to expand...
Click to collapse
I just checked on mine to confirm, but for me I recall Google Maps ALWAYS opens to the last position I was on with the app open, not my current position. It's cached for sure. Even with WiFi off just now, it opened to that, but within under a minute it jumped to my actual position via the actual GPS.
Greetings fellow developers and/or Android enthusiasts,
I wanted to take a moment to start a thread on for the Android application (2.2+) Backitude: Configurable Background Location Tracking. I would like a place to discuss the app publicly, discuss troubleshooting solutions, bugs, or motivate ideas and improvements.
Check out the Full version, ad-free available for free in the Android Market/Google Play store:
Download here: Backitude: Configurable Background Location Tracking
EDIT: Google Latitude shutdown their API on Aug 9, 2013 which completely changes the makeup of the application. Its sole purpose was to send locations to Google in order to maintain an accurate and timely history with Latitude. Now, it will be more geared towards keeping its own history and integrating with a number of systems or personal custom servers.
Backitude provides a bundle of extended features and functionality for updating Google Latitude locations from your Android device. If you are a Google Latitude user or once had interest in the concept of Google Latitude, then Backitude is an essential addon. Background gps location updating at your own specified time interval is now within your realm. Backitude expands your updating options, accuracy, and even allows you and your friends to force updates on eachother when needed, all seamlessly behind the scenes.
I created this app about a couple years ago to address two issues: I wanted to fix the short-comings of Google Latitude and make it a plausible application for users to enjoy and utilize effectively and efficiently. Also, I wanted to provide Google Play Store with such functionality free of charge. At the time, no such free application existed.
Google Latitude is somewhat inadequate on its own, but this is of no fault of the Google developers. They designed the application with battery efficiency as a number 1 priority. The conserve battery, Latitude on its own does not update locations in the background using GPS for accurate reporting. Instead it relies on Wi-Fi and cell tower triangulation to determine your location. Since many users refrain from enabling Wi-Fi when not stationary in their own network, or since Wi-Fi cannot be obtained while travelling, the resulting location updates are large, inaccurate "blue circles" on the map. Cycling through your Latitude friends, I mostly would see large, city-wide, inaccurate location readings- like I said, therefore truly defeating the purpose of Latitude. Latitude also fails to give the user any configurable options to location reporting. What good is a location history if majority of the values are city level and inaccurate? Backitude, to the rescue.
Backitude was designed to address all of this and put the power back into the hands of the user. You have complete control what, when, and how to update. Power can be a dangerous thing however. Google chose not to give the user a chance to configure their settings and risk draining batteries and having Android or Google products labelled as "battery drainers." Backitude is for the intelligent user, to know how to manage their battery, know their priorities, and know the effect of such functions. GPS polling is a very battery-intensive maneuver!
The final issue and gap Backitude inspired to bridge is updating a friend's location. It is great to have control over your location updates and allowing your friends to see exactly where you are, but what if they haven't updated recently or exactly when you needed to know their location? Backitude has an answer for that. "Fire an Update on a Friend" is the newest feature which utilizes SMS messaging to receive requests from other Backitude users. If your friend is also using Backitude and has this option enabled, you can send a request to their device which will in turn trigger an update at that very moment.
Additionally, there are many, many more features that all serve to give the user complete control of Latitude updates and battery consumption (in the context of Latitude updating). Thank you for checking it out, and I look forward to supplying any troubleshooting information right here for all to find, and hear ideas and feedback from those other enthusiasts out there.
Troubleshooting Topics
Location Updating using Backitude: the application utilizes oAuth2 authentication which is very easy and very convenient for the user. The user is able to grant permission for Backitude to integrate with their Google Latitude account at a click of a button without even having to enter their credentials.
The issue is, some users on some devices have experienced trouble obtaining this permission. It is important that users do one of the following before using Backitude, however, for some users it is required that they do both:
1) Use the Maps application to "activate Latitude for this device" by signing into Latitude. (Additionally, it is suggested that the user change their Latitude location reporting to "set your location". By manually updating your location and selecting an arbitrary position, you will prevent Latitude from wasting unnecessary battery life on updating your location, but still allow your friends to see your location. Backitude can do all your updates for you instead.)
2) From a PC or computer, visit Google Latitude and sign in from your browser. (And not from a tablet or smartphone browser) I do not know why this is required, but for some, to fully opt into the Google Latitude agreement and conditions, this is required.
After doing so, 99% of users are able to update using Backitude. An extreme minority, still have to perform some additional steps. This would include resetting your Google 3rd party authorizing sites, by revoking access from all, and then trying the process over from start. Signing into Maps. Activating Latitude. Installing Backitude..etc Any issues, I am always available via forum or email. Thanks!!
I just started using this app a few days ago after realizing how often Google Maps is polling for location information just to update latitude... Hundreds of times a day, even when I'm not moving!
So far, I'm liking what this app has to offer
Troubleshooting Topics: Location Updating using Backitude
If all else fails to get you updating, the following detailed description may help get you going as a last resort. Again, I'm not sure why oAuth2 can be so difficult for a small handful, and so convenient for so many others.
Start fresh by trying the following steps to reset your Google Latitude permissions
* From your android device, launch the Maps > Latitude application and Sign out. On the latest version, this is accomplished by going to Latitude > Menu > Location settings > Location reporting > Latitude location sharing > Sign out of Latitude
* Next, go into Android > Settings > Applications > Manage Applications > Maps and click the "Clear data" button.
* Similarly, uninstall the Backitude application by completing the following: Android > Settings > Applications > Manage Applications > Backitude and click the "Uninstall" button.
Now, follow these steps from a PC browser to remove access (so that we can then add them back)
* Visit google.com
* Sign into Google using the account you are trying to configure for Backitude
* Go to Google Account settings, or click "Account". (I will post a link directly there when I have the ability too)
* Scrolling down, you see the option to "Visit the previous version of the Account settings screen" which takes you to My Account.
* Under Security, select the link for "Authorizing applications & sites" (accounts.google.com/b/0/IssuedAuthSubTokens)
* Revoke access to any applicable "Android Login Service" entry including those such as "Full Account Access" and "Google Latitude"
Everything is now successfully reset, so perform the following steps in order.
* Sign into Latitude from a PC browser. (It is very important to sign in from a PC browser and not your android device at first). This is required by some devices for authentication purposes, to "opt" your Google account user into Latitude.
* Enable Google Latitude on your device using the Latitude app. If multiple accounts exist on your device, you may have to select the appropriate account by going to Maps > Menu > Settings > Switch Account. Then, or otherwise, sign-in to Latitude from your android device.
* Finally, you can try to re-install Backitude and successfully update your location to Google Latitude.
And that always seems to get the last 0.01% of users updating successfully who couldn't before. Annoying, yes!
Other similar 3rd party Latitude apps appear to be using a variant of oAuth1 authentication, which requires entering your password. I have contemplated implementing the same, to avoid this issue but perhaps future versions of Maps and Android will better activate permissions on those devices.
Backitude: My settings
How do I configure Backitude to run? Personally, with battery efficiency in mind while leaving the highest priority features enabled.
Enable Service: on (this is essentially the on/off switch)
Advanced Settings
Set Priority: Wi-Fi, with GPS/Tower Triangulation backup (One of the most overlooked but favorite options. This setting will abort GPS polling if a Wi-Fi network is present and the Wi-Fi location is accurate. So, in a real-life situation, my phone is indoors at work or at home with Wi-Fi enabled. GPS is enabled but not going to be able to get a fix indoors. Instead of polling for the entire extent of the Polling Timeout, Backitude will abort polling, and update using the Wi-Fi location value, which is all it ever would've gotten anyways. Beyond that, if I am outdoors and away from a Wi-Fi network with the same setup, the GPS will still poll and run its course as normal.)
Settings
Time Interval Option: 30 minutes (if my friends need a more recent update, they can ping me and have backitude fire off an automatic update seamlessly in the background)
Location Polling Timeout: 15 seconds (The longer GPS is allowed to run, the more potential battery gets burned if you can't acquire an easy fix)
Latitude Re-Sync Rate: off (this feature is only needed to prevent Latitude from overwriting your Backitude location update. However, I put my Latitude location reporting to manual so Latitude is no longer detecting my location. Battery saver too!)
Min. Change in Distance: off (I'm not a Location History keeper, so eliminating repeat updates is not a concern for me)
Location Steals: On (This is one of my favorite features. If you're using an app such as Maps, Navigator, or even the Internet, which polls your GPS, Backitude will steal this location and use it to update your location. The battery-intense function is already on-going thru another app, you might as well steal the location value and update your Latitude at very little expense.)
Accurate Update Only: On (You have to think about location "circles" for this option. Circles coming from inaccurate location readings. If your previous location value was more accurate then the current location reading, and the previous location is within the location perimeter of the newest location, it will repeat the more accurate location.
Real-time Enabled: Off (This is for individuals wanting to update at a faster rate when charging their device or docked. Personally, I just change my update interval when I want to update faster)
Real-time Interval: n/a (Users tend to want to poll location and update at a faster rate when their device is docked and battery is no longer a concern)
Real-time Timeout: n/a (When real-time updating, there is a separate timeout value for GPS polling versus the normal timeout. Users may have a different preference if their device is docked so there is a separation configuration for that)
Push Enabled: On (Allow friends to force an update to Latitude on my device by simply texting "Force Backitude update". I can get away polling at a slower rate and save battery because all my friends and fellow Backitude users know they can force an update on me when needed)
Display Message: off
Display Push Notif: off
Status Bar Icon: never
Display Update Message: off
Display Update Failed Notification: off
EP2008 said:
I just started using this app a few days ago after realizing how often Google Maps is polling for location information just to update latitude... Hundreds of times a day, even when I'm not moving!
So far, I'm liking what this app has to offer
Click to expand...
Click to collapse
Thanks. I'm currently working on fixing a couple known issues, and hoping to get a new release out this week. Nothing earth shattering though. I noticed you were running ICS... have you noticed any issues? I have not tested ICS compatibility yet, so I was always curious. Using a Bionic myself, I'm still hoping to get an update later this year and try it out myself. Thanks!
backitude said:
Thanks. I'm currently working on fixing a couple known issues, and hoping to get a new release out this week. Nothing earth shattering though. I noticed you were running ICS... have you noticed any issues? I have not tested ICS compatibility yet, so I was always curious. Using a Bionic myself, I'm still hoping to get an update later this year and try it out myself. Thanks!
Click to expand...
Click to collapse
No issues that I've seen.
I did have a bit of frustration when testing it as I had it set not to update unless my location changed more than 100m, so when I fired a manual update, I assumed that would force an update regardless of the location setting. It wasn't until after I turned that setting off did the manual update refresh with a new location timestamp.
Not a huge issue, but for some time I didn't think that the app was working because the timestamp on the history log never changed after manual updates.
Sent from my Galaxy Nexus using Tapatalk 2
EP2008 said:
I assumed that would force an update regardless of the location setting.
Click to expand...
Click to collapse
I never thought of that. That is probably a fair assumption. I may have to consider re-working that logic, so that like you said- if "Fire Update" is launched, you do not consider skipping the update because of minimum distance rules. Thanks!
backitude said:
I never thought of that. That is probably a fair assumption. I may have to consider re-working that logic, so that like you said- if "Fire Update" is launched, you do not consider skipping the update because of minimum distance rules. Thanks!
Click to expand...
Click to collapse
The reason I made the assumption was because I use an app called FolderSync, which helps manage cloud file storage services. With it, you can setup rules to sync your files, like what time a backup should be made, if you are plugged into a charger and if you are on wifi, etc. The app has an option for the user to initiate a manual sync, which basically ignores all scheduling rules over the users desire to sync right now. That's why I thought it might be the same for Backitude.
EP2008 said:
...The app has an option for the user to initiate a manual sync, which basically ignores all scheduling rules over the users desire to sync right now. That's why I thought it might be the same for Backitude.
Click to expand...
Click to collapse
I like the idea. I am going to change that for the next release. The settings for Backitude are pretty intimidating, even for novice Latitude users. I want to make it as user-friendly and straight forward as possible. Thanks for the help!
Still no way to see other people on Latitude? I'm sure it must be an API you don't have access to or something of that nature, but I still don't get the point of this app if it's "write-only". You can't see anyone, only they can see you.
You're correct in that the API is very limited. It only allows you access to your own location and location history, so there is no way to retreive your friends' locations, or even your list of friends. The purpose of Backitude is not to replace Google Latitude, but simply help correct its short-comings. Using backitude, and having your friends use backitude, ensures accurate locations, battery efficiency, and a means to update your friends' locations when you need their location. Once configured, Backitude runs in the background and can remain fairly transparent to your day to day Latitude use.
I'm using your app too in ICS 4.0.4 if you need some feedback. It's working quite well, even better than the other one! Keep the good work.
(Currently testing 2.7) Here is the change log, let me know if there's any more bugs I need to iron out last minute. Thanks!
Backitude: Update release 2.7 Changelog
1. Reported Issue: Backitude just stops running after a couple hours of use. (Unconfirmed but occasionally reported bug) I haven't been able to duplicate, however this could be the result of Android's memory management as an operating system, or the result of a Task Manager, task killer type of process. Users who experience such an issue should add Backitude to the ignore list on their task managers. However, I have made some changes in the code that may help.
2. Enhancement: For IOException, SocketTimeoutException, Read timed out, Unresolved host name. Backitude now has a re-attempt feature that will retry update after 60 seconds from a failed update due to these network congestion exceptions. (As directed to do by Google)
3. Enhancement: Implemented notification for users who cannot update due to permissions problem. (403/503 exception) Instructing user to first login to Google Latitude from a PC browser to "opt user into Google Latitude" and/or reset their Latitude location manually again. Google sometimes implements new terms and conditions and it may be required to re-opt into their agreement.
4. Enhancement: Updated Java Client libraries and Google Latitude libraries. I am hoping this shows improvements with efficiency, speed, memory, and issues.
5. Issue: (GUI) Steals option is not disabling if the Time Interval is under 5minutes. Likewise, it should then enable if the Time Interval is switch to greater than 1minute, similar to the behavior of the Re-Sync Rate option.
6. Reported Issue:*Wifi turns off after an update when Wifi Wake lock is enabled. Backitude now checks to see if Wi-Fi is connected (and therefore not sleeping) before acquiring a Wi-Fi wake lock.
7.* Change: "Fire Update" does not update location if minimum required distance is configured and new location is not outside of the bounds of previous location. Fire Update, since it is a manual update, has been changed to not consider the minimum distance configuration and bypass this validation.
8. Issue: Steals and manual updates (Fire Update) are not resetting the Time Interval clock after a successful update. This issue has been resolved.
9. Issue: Minimum distance calculation not taking into consideration changes in accuracy. If accuracy changes greatly from one location poll to the next, the location centers could be drastically far apart although the device has not moved. Offsetting the accuracy changes will result in better results for calculating change in distance.
10. Change: Push Update notification labels have been updated.
Well thats a nice application. Just starting to use it.
I have a suggestion. As my phone goes at night in a kind of sleeping mode - Wifi off, 3G off, Wifi Off, etc. - i would like to have a function to disable Backitude for certain hours or much better a Tasker Plugin.
What do you think ?
Thomas_BA said:
Well thats a nice application. Just starting to use it.
I have a suggestion. As my phone goes at night in a kind of sleeping mode - Wifi off, 3G off, Wifi Off, etc. - i would like to have a function to disable Backitude for certain hours or much better a Tasker Plugin.
What do you think ?
Click to expand...
Click to collapse
Thanks, glad you like it so far!!! It's funny you mention that because I have two main goals for the summer. Tasker integration and off-line storage/sync. I looked into Tasker once before over the winter and it turned out to be a lot more work then expected so I put it off, as this is just sort of a hobby in my free time. But with baseball season upon us, I do a lot of coding with the games on. Go Sox!
In the mean time, there is a setting for wake locks in Advanced Settings for Backitude. You can turn disable the wake locks and Backitude will not run once your phone goes into sleep mode. This means that the gps will not run while sleeping..etc Hope this helps
Nice to read hat you planning a Tasker integration/plug-in.
Yes for the time being i have disabled both wake locks. Disadvantage is that my phone sleeps a lot . I have my display timeout set to 1 minute, so sometimes my phone is sleeping for an hour while walking around in Buenos Aires or Argentina. Anyway for now this is the only solution. Looking forward to your next developments.
Thanks.
Thomas_BA said:
Yes for the time being i have disabled both wake locks. Disadvantage is that my phone sleeps a lot . I have my display timeout set to 1 minute, so sometimes my phone is sleeping for an hour while walking around in Buenos Aires or Argentina.
Click to expand...
Click to collapse
Actually, it shouldn't be that bad. Backitude will only cease functioning without wake locks once the device goes into a "deep sleep mode." I am not sure about the specifics of when this occurs, but it's separate then just display timeout. Can even take up to an hour or more from what I read, so as long as you're using it every hour or so, it should continue functioning. Please post your findings though, I am intrigued now.
I will observe the pushing frequency to Latitude and keep you informed.
I've been using Backitude for a few months now.
However, even with WiFi Wake Lock enabled, it seems the accuracy of my updates does not improve. However, when I open google maps with WiFi already on, the accuracy is few meters (I work and live in a dense WiFi area).
Do you think that Backitude for some reason is not turning on the WiFi, or is WiFi based localisation not being picked up by latitude?
Thanks for a great app!
Just for anyone else suffering a horrific battery issue....
I would take a few photos a day. My battery would die in a few hours, with the culprit being "Google Play Services", which when drilled down showed the camera as the high battery user.
Furthermore, I was getting poor GSM data rates, with the phone seemingly unable to find the nearest transmitter (it would jump to full bars for a few seconds, then lock on to a 1 bar cell and constantly change between H and 3G). While all this was happening, the Nexus 5 got hot.
Now do this:
Settings>Location>Mode>Device Only
Make sure it's in "Device Only" mode. Logic says that this is the wrong setting, but now I can go a couple of days no problem, I lose 3% overnight, the camera uses next to no juice and "Google Play Services" doesn't even make it onto the list. :laugh:
If you're in an area with good signal I would say you have an issue with the data/gsm module and your solution is not proper. Try launching maps - it will suggest enabling mobile/wifi location for better location service.
Mine is set to high accuracy and my battery life is pretty good.
Verify if you're having this issue on multiple locations or only on certain places?
Sent from my Nexus 5 using Tapatalk
Pottsy said:
Just for anyone else suffering a horrific battery issue....
I would take a few photos a day. My battery would die in a few hours, with the culprit being "Google Play Services", which when drilled down showed the camera as the high battery user.
Furthermore, I was getting poor GSM data rates, with the phone seemingly unable to find the nearest transmitter (it would jump to full bars for a few seconds, then lock on to a 1 bar cell and constantly change between H and 3G). While all this was happening, the Nexus 5 got hot.
Now do this:
Settings>Location>Mode>Device Only
Make sure it's in "Device Only" mode. Logic says that this is the wrong setting, but now I can go a couple of days no problem, I lose 3% overnight, the camera uses next to no juice and "Google Play Services" doesn't even make it onto the list. :laugh:
Click to expand...
Click to collapse
Yes, logic says it is the wrong setting because it is. "Device Only" will only use GPS. "Low Accuracy" will only use googles location approximation via cell towers and wifi signals. "High Accuracy" will use both.
Once you set it to "Device Only" you robbed your phone from being able to track your location (for instance for google now). So naturally you don't have that much battery drain any more when taking pictures. I'm 100% sure that you are tagging your photos with your geo location, so every time you take a picture, the google play service determins your position.
To clarify: GPS isn't on all the time and is only activated when an app requests the phones position. The google location stuff is on all the time and will be active even when the phone is idling.
Dlog said:
Yes, logic says it is the wrong setting because it is.
Click to expand...
Click to collapse
I appreciate that.
I have tried with the correct settings, and it seems to leave "Google Play Services" using between 30% and 60% of my battery. Things get really bad when I am in a weak GSM signal location - with the phone getting really quite hot. Chrome triggers this, but then just having the phone awake seems to get it going.
Watching Google Maps in a position where I get no GPS signal (so monitoring the position calculated from the GSM network) I can see my location jumping from mast to mast every 10 seconds or so.
I realise that turning it off is "wrong", but it is not as wrong as my battery dying at 4pm, and until it is fixed it will have to remain off. Google Now is useless since I am not in the US, and Geo Location on the camera is switched off.
I 2nd that pottsy i disabled my yesterday and got my 1st good day with battery
Sent from my Nexus 5 using Tapatalk
Pottsy said:
I appreciate that.
I have tried with the correct settings, and it seems to leave "Google Play Services" using between 30% and 60% of my battery. Things get really bad when I am in a weak GSM signal location - with the phone getting really quite hot. Chrome triggers this, but then just having the phone awake seems to get it going.
Watching Google Maps in a position where I get no GPS signal (so monitoring the position calculated from the GSM network) I can see my location jumping from mast to mast every 10 seconds or so.
I realise that turning it off is "wrong", but it is not as wrong as my battery dying at 4pm, and until it is fixed it will have to remain off. Google Now is useless since I am not in the US, and Geo Location on the camera is switched off.
Click to expand...
Click to collapse
Not saying that you're giving a bad tip. It's just not the fix for all battery problems with the n5, but only for the specific case that an app is "location hungry".
Now I did this yesterday and it has worked for Google Services but now I am checking my battery stats and "Google Search" is next most draining app behind the Screen... Why would google search be using that kind of battery?? I am not searching anything lol
Dlog said:
Not saying that you're giving a bad tip. It's just not the fix for all battery problems with the n5, but only for the specific case that an app is "location hungry".
Click to expand...
Click to collapse
He says it fixes the problem everyone is having with Google Play Services draining ~50% of their battery. It's a documented problem that isn't just all over the forums and G+, but Android Police even put out a story about it. Maybe the title to the thread is misleading, but the OP's initial post clearly states his problem and the solution he found for his problem.
jm6001 said:
Now I did this yesterday and it has worked for Google Services but now I am checking my battery stats and "Google Search" is next most draining app behind the Screen... Why would google search be using that kind of battery?? I am not searching anything lol
Click to expand...
Click to collapse
Google search is the launcher app used for the stock rom on the nexus 5. Maybe you are using your home button a bit too often?
Paddington said:
He says it fixes the problem everyone is having with Google Play Services draining ~50% of their battery. It's a documented problem that isn't just all over the forums and G+, but Android Police even put out a story about it. Maybe the title to the thread is misleading, but the OP's initial post clearly states his problem and the solution he found for his problem.
Click to expand...
Click to collapse
What others are saying, though, is that this fix only fixes the symptom...not the actual issue. If you get battery drain because of location services, turn off location services in the apps that are draining it heavily.
Example: He takes pictures during the day and notices battery drain. Disable Geo-Tagging on pictures, and see what effect it has. If you turn the location services to "Device Only" you're going to have issues actually making use of location services (think Maps, Navigation, Google Now, Facebook, etc...that use location). Anytime you use these services it'll have to activate the GPS module to get a location...which can take 10-20 seconds, if you have clear access to the sky. For reference: the GPS module uses a lot more battery than the triangulation done by the cell towers...so actively using any app that uses location services will actually use more battery.
The other thing to try and disabling background processes. Close applications you're not using, and in the developer menu limit how many applications can be running in the background at a time. It could be that your sync services or other applications are constantly checking for location. Many of those applications will refuse to use the hardware GPS and instead rely on the triangulation services, which is why you might be seeing this battery longevity increase.
Synopsis: Setting it to Device-Only is a bad idea; instead, try to find the root of the problem.
I have found the problem.
It's not the apps making the calls, it's the location service itself. And I will specifically disagree on one point: using GPS only uses a lot less battery than cell location via a broken OS.
Sent from my Nexus 5 using Tapatalk
Another solution ...
Pottsy said:
I appreciate that.
I have tried with the correct settings, and it seems to leave "Google Play Services" using between 30% and 60% of my battery. Things get really bad when I am in a weak GSM signal location - with the phone getting really quite hot. Chrome triggers this, but then just having the phone awake seems to get it going.
Watching Google Maps in a position where I get no GPS signal (so monitoring the position calculated from the GSM network) I can see my location jumping from mast to mast every 10 seconds or so.
I realise that turning it off is "wrong", but it is not as wrong as my battery dying at 4pm, and until it is fixed it will have to remain off. Google Now is useless since I am not in the US, and Geo Location on the camera is switched off.
Click to expand...
Click to collapse
I think there's a better solution ... Go to settings>apps, and for every app that uses Google Play Services (google search, google now, maps, etc), clear the their data. Google Play Services went from 2nd biggest hog (after the display) to way down on the list. Maybe there's only one app that needs to have its data cleared to fix it, dunno I just cleared them all.