[英]interchangeable network and GPS location providers according to gps status android
[英]Android Location Providers - GPS or Network Provider?
Android 中有 3 个位置提供程序。
他们是:
gps –>(GPS、AGPS): GPS 位置提供商的名称。 该提供商使用卫星确定位置。 根据条件,此提供程序可能需要一段时间才能返回位置修复。 需要权限 android.permission.ACCESS_FINE_LOCATION。
network –> (AGPS, CellID, WiFi MACID):网络位置提供商的名称。 该提供商根据手机信号塔和 WiFi 接入点的可用性确定位置。 通过网络查找检索结果。 需要权限 android.permission.ACCESS_COARSE_LOCATION 或 android.permission.ACCESS_FINE_LOCATION。
被动–>(CellID,WiFi MACID):一个特殊的位置提供程序,用于接收位置而无需实际启动位置修复。 当其他应用程序或服务请求位置更新时,此提供程序可用于被动接收位置更新,而无需自己实际请求位置。 该提供者将返回由其他提供者生成的位置。 需要权限 android.permission.ACCESS_FINE_LOCATION,但如果未启用 GPS,此提供程序可能只会返回粗略的修复。 这就是 Android 所称的这些位置提供程序,但是,使这些东西工作的底层技术映射到特定的硬件集和电信公司提供的功能(网络服务)。
最好的方法是先使用“网络”或“被动”提供程序,然后回退到“gps”,并根据任务在提供程序之间切换。 这涵盖了所有情况,并提供最低公分母服务(在最坏的情况下)和优质的服务(在最好的情况下)。
文章参考: Android 位置提供程序 - gps,网络,被动作者 Nazmul Idris
代码参考: https://stackoverflow.com/a/3145655/28557
- - - - - - - - - - - -更新 - - - - - - - - - - - -
现在 Android 已融合位置提供程序
Fused Location Provider 智能管理底层定位技术,根据您的需求为您提供最佳位置。 它简化了应用程序获取用户当前位置的方式,提高了准确性并降低了功耗
Fused Location Provider 提供了三种获取位置的方法
参考:
官方网站: http://developer.android.com/google/play-services/location.html
融合位置提供程序示例:GIT: https://github.com/kpbird/fused-location-provider-example
http://blog.lemberg.co.uk/fused-location-provider
-------------------------------------------------- ------
GPS 通常比网络更准确,但有时 GPS 不可用,因此您可能需要在两者之间切换。
一个好的开始可能是查看 android 开发站点。 他们有一个专门用于确定用户位置的部分,其中包含您需要的所有代码示例。
http://developer.android.com/guide/topics/location/obtaining-user-location.html
这里提到了一些很棒的答案。 您可以采取的另一种方法是使用一些在线提供的免费 SDK,例如 Atooma、tranql 和 Neura,它们可以与您的 Android 应用程序集成(集成时间不到 20 分钟)。 除了为您提供用户的准确位置外,它还可以让您深入了解用户的活动。 此外,其中一些消耗的电池电量不到 1%
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.