We’ve just released Whereoscope 1.2 for Android. 1.2. Get it here (Market) or here (AppBrain). 1.2 has a few new features that we’ve been asked for ever since we released 1.0, but it also includes an important bugfix that I want to talk about for a moment.
The bug that 1.2 fixes is actually not our bug — it’s a bug caused by some manufacturer’s* builds of the Froyo (Android 2.2) code. You can find some detailed discussion of it here. In short: every Android phone has a unique device identifier, which we use to distinguish between data sent from different handsets. The problem is that on some models of phone, this unique identifier is not, in fact, unique: for these models, every single handset will report exactly the same identifier as every other (9774d56d682e549c). What this means is that we’re unable to distinguish between requests sent from actual individual handsets — they all report the same ID, so they all appear to be the same physical device to our servers.
The fix we’ve put in place is to detect these handsets (we can do this by checking to see if they report this particular errant device ID), and instead of using the hardware device ID, we use the “IMEI” number instead, which is also supposed to be unique to the device. We’re aware that using the IMEI number is not a perfect solution: Wikipedia’s article on IMEI numbers quote a BT Cellnet spokesman who claims that around 10% of IMEI numbers are not unique. The reason we went ahead with the IMEI number is that it is one of the few numbers that will not change if the phone’s subscriber changes. This means that if your phone were to be stolen, Whereoscope would continue to function even if the thief changed the SIM card. Of course, if they wipe the phone, then Whereoscope will no longer run and you will not be able to locate the device, but we want to give you the best chance we can to recover the handset.
The last thing to say about this is that in order to do this, we had to ask for the “read phone state” permission. This means that this version of Whereoscope will not automatically update itself if you had previously configured it for automatic updates. I want to be clear that we are only using this permission to get this IMEI number, not any of the other data it allows us to access. To upgrade, you’ll need to manually go to the Marketplace and confirm the update yourself.
With that out of the way, Whereoscope 1.2 also fixes a bug we’ve had since 1.0 where the notifications we sent out all had timestamps in Pacific time. As of 1.2, we will send you notifications in whatever timezone your phone is configured for. We’ve also added some enhancements to the map: you are now able to select satellite view from the option menu, and we also show blue circles around locations to show how accurate the location fix is.
We’ve also added a couple of server enhancements to coincide with 1.2, some of which you may already have seen. The two main ones are that we now show entries on the “family list” page for family members who are currently logged out. This solves a long-standing issue where it was impossible to know which web-only users were in the family — since web-only users had no location data, they would not show up in the app. You’ll also be able to see if someone in your family is logged out at the moment, meaning that you won’t be able to locate them. The other server change of note is that we’ve lowered the accuracy threshold location samples need to pass to be displayed on the map. This is in response to feedback from a number of our Android users that they prefer to use their phone with the GPS hardware disabled. Whereoscope will run just fine using only network based location, but the accuracy was often too low for that data to be useful, so we didn’t show it on the map. It’s still the case that network derived location is often inaccurate, but at least this way you’ll have that data, and with the error circles, you’ll be able to make an informed decision as to how much you should trust that data.
We’ve been really pleased with the uptake of Whereoscope on Android, and we’re deeply grateful for how much help we’ve received from our users in finding and helping to debug issues like the duplicate device ID bug. So thanks guys! As always, be sure to let us know if there’s anything we can do to make Whereoscope better — we’ve been loving all the great feedback so far!
[*] The affected handsets that we know about are:
- Motorola Droid 2
- Motorola Droid X
- HTC Desire
- HTC HD2
- LG Optimus S LS670
There are certain to be others, so 1.2 is a strongly recommended upgrade for everyone. You will need to logout and log back in again for everything to start working.