Do I need to use a service like Skyhook if I want geolocation in my Android App over wi-fi or will it work out-of-the-box like with an iPhone?
views:
87answers:
1I don't know exactly what the iPhone provides, but there's no particular reason to use third-party APIs on Android to get most location information you would need.
Android can determine two types of location: coarse and fine-grained. Your application can choose to use either or both of these.
Coarse location uses a Skyhook-like service, though I believe in Android's case the data comes from a Google-provided service rather than Skyhook Wireless's solution. Using this requires less battery life and is more reliable indoors, but of course requires a data connection and isn't necessarily particularly accurate.
Fine-grained location uses the GPS which takes longer to get a fix (though if the user has data connectivity and can get AGPS data, this can be improved), uses more battery, but of course gives very accurate information.
Note that the user, in the system settings, can disable either of these location providers at any time.
You can use the method LocationManager.getBestProvider()
to specify what location features you require, and Android will return you the most appropriate location provider.