如果我想通过 Wi-Fi 在 Android 应用程序中进行地理定位,是否需要使用 Skyhook 等服务?
如果我想通过 Wi-Fi 在我的 Android 应用程序中进行地理定位,我是否需要使用 Skyhook 之类的服务,或者它可以像 iPhone 一样开箱即用吗?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道 iPhone 到底提供了什么,但没有特别的理由在 Android 上使用第三方 API 来获取您需要的大部分位置信息。
Android 可以确定两种类型的位置:粗粒度和细粒度。您的应用程序可以选择使用其中之一或两者。
粗略定位使用类似 Skyhook 的服务,但我相信在 Android 的情况下,数据来自 Google 提供的服务,而不是 Skyhook Wireless 的解决方案。使用它需要的电池寿命较短,并且在室内更可靠,但当然需要数据连接,并且不一定特别准确。
细粒度定位使用 GPS,需要更长的时间才能获得定位(尽管如果用户有数据连接并且可以获得 AGPS 数据,这可以改进),使用更多电池,但当然可以提供非常准确的信息。
请注意,用户可以随时在系统设置中禁用这些位置提供程序中的任何一个。
您可以使用方法
LocationManager.getBestProvider()
指定您需要哪些位置功能,Android 将为您返回最合适的位置提供程序。I 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.