1. Are you ready for the Galaxy S20? Here is everything we know so far!

[App][Free][2.2+] Backitude: an essential client app for all Google Latitude users

Discussion in 'Android Apps & Games' started by Backitude, Apr 14, 2012.

  1. Backitude

    Backitude Newbie
    Thread Starter

    Greetings fellow developers and/or Android enthusiasts,

    Check out the Full version, ad-free available for free in the Android Market/Google Play store by searching: Backitude for Google Latitude

    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 year 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 the Android Market (or Google Play Store now) with such a benefit free of charge. At the time, no such free application existed. Now there are plenty of options out there, with variety and different focal areas, and I couldn't be happier to see the world with accurate Google Latitude locations without an overbearing strain on batteries.

    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. 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!

    1. Download the Forums for Android™ app!


  2. Bob Blaylock

    Bob Blaylock Well-Known Member

    I've downloaded and installed Backitude, and tried to make it work. Every attempt on its part to update my location results in an error like this:

  3. Backitude

    Backitude Newbie
    Thread Starter

    Hi Bob, thanks for giving it a shot. I didn't even have to open up the picture to know you were getting a 403. That translates to a permissions problem with your Google account. Either Latitude isn't "activated" on your device properly, or "user has not opted in" to Google Latitude agreement.

    This is usually easy enough to fix.
    The first suggestion I have, is to try to log into Google Latitude from a PC browser. Sometimes for some users on some devices, for whatever reason, this is required to "opt into Latitude". For some devices, I've found that it isn't enough to use Latitude from your device and it doesn't setup permissions properly with Google.

    Next, make sure you have signed into Latitude from your Maps application. This will "activate Latitude for device". If problems persist, you can try activating Location History as well, for the time being, to see if that gets you opted in properly.

    It is a little inconvenient and I even spoke with Google about it, but they said this is the way, and this is necessary. Oh well.

    Thanks again
  4. Backitude

    Backitude Newbie
    Thread Starter

    If all else fails to get you updating, the following detailed description may help get it working. 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 after)

    * 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 client 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.
  5. Bob Blaylock

    Bob Blaylock Well-Known Member

    Other than your app, I have had Latitude working so far without any problem. I'll go ahead and try the more detailed instructions that you have,and see if that gets me anywhere.

    On other issue I had last night, to which I do not know if your program is relevant or not, has to do with WiFi. Around the time I was testing Backitude, I discovered that my phone was turning off WiFi and using the 3G network instead of my WiFi network. I have JuiceDefender set up to manage turning these things on and off, and except for that time last night, it has generally worked as it should. I ended up “freezing” Backitude and doing several reboots before I got this working straight again. I'll “defrost” Backitude, and try your suggested steps, and along with reporting on whether I get Backitude itself working, I'll also let you know if this WiFi issue returns.
  6. Bob Blaylock

    Bob Blaylock Well-Known Member

    It seems to be working now. No sign of that WiFi issue I had last night. Last night, I had tinkered with the advanced settings,and probably turned on the “Wi-Fi Lock enabled” setting. I didn't touch it this time. That may be what caused that issue.

    A donation is on its way via PayPal.
  7. Backitude

    Backitude Newbie
    Thread Starter

  8. Backitude

    Backitude Newbie
    Thread Starter

  9. Backitude

    Backitude Newbie
    Thread Starter

    (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.
  10. Bob Blaylock

    Bob Blaylock Well-Known Member

    Just got update within last half hour. Now, Backitude force-closes every time I try to start it. It was working just fine for me before this update.
  11. Bob Blaylock

    Bob Blaylock Well-Known Member

    Another update, and it seems to be working again.
  12. Backitude

    Backitude Newbie
    Thread Starter

    I'm so upset at myself. I updated my eclipse (development software) before packaging up my big new release last night and the new version didn't bundle the dependent libraries automatically like the old version used to. The one time I didn't check the app before going live. And noticing a minute later, do you think Google lets me de-activate and roll back to the previous version? Nope. So I had to quick scramble to figure out what was wrong, and uploaded a new version within a half hour. Hopefully not too many users updated as quickly as you did. Sorry about that...

    But yeah, a functioning version 2.7 is now available!!!! check it out. The changelog is available here: http://www.downwindoutdoors.com/apps/backitude/changelog27.log
  13. Backitude

    Backitude Newbie
    Thread Starter

    Some users are experiencing random "bad location" updates that are caused when a gps fix cannot be obtained and the app resorts to cell tower triangulation provided by the operating system. These updates can be very inaccurate or even thousands of meters away from actual location and throw a user's history all out of line, literally.

    I have come up with the following solution to battle this situation. I took the Location Provider - Set Priority options under Advanced Settings, and extended the options.

    Now, a user can choose to completely disregard cell tower triangulation location values if this is an issue for them. Combined with minimum distance requirements and the Accuracy Filter, I am hoping this will satisfy everyone's needs across the board.

    [​IMG]*These options are dependent on the providers being enabled on your device, (Location services, GPS, WiFi..etc)
  14. Backitude

    Backitude Newbie
    Thread Starter

    Good news all,

    I found an even more battery efficient way to write my code and structure my Backitude processing. That said, I couldn't sleep until I re-wrote the entire application to conform to this new design. And it works!!!

    Major revision changes for 3.0 include:
    - complete rewrite for battery efficiency
    - resync and minimum distance options can now be enabled simultaneously (a user actually pointed out how this could be useful)
    - real time updating mode can now also listen for "steals" simultaneously when real time updating interval is greater than 1 minute
    - established a 3-attempt process for updating to Latitude when the request fails due to network congestion or weak/lost signal
    - tablet compatibility is re-instituted
    - logcat statements now available
    - bug fixes

    As stated, a lot of the code has changed and over half of it was re-organized. The introduction of new issues is a high probability, but I have also spent more time testing this version then any other. If you notice anything, do not hesitate to send them over. Thanks
  15. Backitude

    Backitude Newbie
    Thread Starter

    Look for an update now in the Google Play store! Version 3.2 has been released and includes bug fixes, expanded options, and more compatibility.
  16. Backitude

    Backitude Newbie
    Thread Starter


    This is just an informal announcement that Backitude 3.3 has just been made "live" in Google Play. Be expecting an update soon from Backitude which will include the OFF-LINE LOCATION STORAGE & SYNC functionality many had previously showed interest in. It took a good deal of work but I am excited to get it out there and bring the application to a whole new level.

    Other new features include the ability to configure the degree of accuracy required for GPS/Wi-Fi while polling for new locations. Specify a larger degree of accuracy and polling time will be reduced. Require a more accurate reading, and polling will continue longer until that value is acquired or the timeout passes.

    Offline synchronization also includes some options as when to perform the sync. (Manual process only, once Wi-Fi is available, or once any network signal is available)

  17. Backitude

    Backitude Newbie
    Thread Starter

    There was an issue affecting the Sync, (some older operating systems were getting overrun with too many requests building up in the queue, of which Android only allows so many) although it only affected a small number of users- the bug has been resolved.

    Version 3.6 is available and fully functional for all 2.2+ android devices. Cheers!
  18. Backitude

    Backitude Newbie
    Thread Starter


    Version 3.9 has now been released to the public and is available to download.

    Changes include:
    *A user had requested a means for which to share his location with someone when a data connection is not available to update Google Latitude. The solution for this case is to send an SMS with the coordinates of the last polled location. A new "Share Your Location" feature not only pre-populates a Google Maps link with the coordinates of your last location, it can also be used to pre-populate any other social serving media including Email, Facebook..etc

    *A user requested control over Backitude's follow-up action if it failed to successfully poll an accurate location that did not exceed the minimum accuracy requirements as configured in the other settings. A fallback option set, now allows the user to specify what the application should do. The default value is the application's previous automatic behavior. If the application polls for a location, and it does not meet the value does not meet the minimum required accuracy, Backitude can:
    1) use the most accurate value it acquired during the polling. If no new value was acquired whatsoever due to GPS blockage, it can repeat the previous location update.
    2) use the most accurate value it acquired during the polling. If no new value was acquired whatsoever due to GPS blockage, it does not send an update to Latitude.
    3) Automatically repeat the previous location value
    4) Do not update at all if the accuracy requirements can not be achieved.

    *A bug was introduced with Verizon build for ICS where the "Force Update on a Friend" SMS was not pre-populating with the keywords necessary. I found a method that successfully pre-populates the text message, however I just hope it does not break for any other OS builds.

    *Any other bug fixes along the way.

    Check it out, thanks
  19. Backitude

    Backitude Newbie
    Thread Starter

    The newest version of Backitude has been released to Google Play Store. Update Now!!

    The Good:

    Version 4.0
    -New mode, (aka profile aka configuration scheme) for when device is connected to a Wi-Fi network.
    -New option to send location updates to Google over Wi-Fi only (if desired)
    -New option to configure the "steal buffer" or amount of time in between steals
    -Configurable Push Update Widget - widget to one-click launch an SMS message for forcing an update on a friend. Configure the widget to assign a contact number directly linked to a specific widget, so the SMS message will be pre-addressed.
    -Configurable Latitude launcher Widget - widget to launch Latitude friends list or optionally, link to a contact email to launch Maps application with Latitude layer enabled, preset to focus on assigned Latitude friend.
    -Force Update secret suffix- attach a secret string requirement to the conclusion of your push update messages (incoming)
    -bug fixes

    The Bad:
    As all users have experienced the last week, there has been an update quota shortage. Rather than increasing Backitude's quota, Google would like to see Backitude eliminate some repeated updates. Some of the above described new features will help combat this issue (wifi connected mode, configurable steals buffer..etc). Also, I decided to do away with some of the shorter period values for Re-Sync Rate.

    Re-Sync Rate repeats the last polled location and re-sends it to Google. It is most beneficial for users as a "minimum change is distance" override. If you are filtering updates based on a "minimum change in distance" but would like to see updates at LEAST occur every x minutes- you can use Re-Sync.

    Re-Sync was originally intended to prevent Latitude from over-writing the Backitude value with its own, inaccurate value. This can be completely avoided by changing the Google Maps applications "Location reporting" option to manual. In Latitude settings, location reporting, change the value to "set my location" and choose an arbitrary location. Once completed, Backitude can be used to complete all location updates.

    Anyways, I hope this is well received. It may have some bugs, as a lot of new features went into this release.

Share This Page