Android定位提供商 - GPS还是网络提供商?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

在我的应用程序中,我想确定用户的当前位置。然而,我在这方面有几个问题:

  1. 有不同的定位服务商,哪一个最准确?该GPS提供商或网络提供商?
  2. 这些可用提供商有多远?他们如何运作?
  3. 您能否给我提供一些关于如何开始在我的应用程序中实现GPS功能的代码片段或教程?
提问于
用户回答回答于

Android中有3个位置提供商。 他们是: gps - >(GPS,AGPS): GPS位置提供商的名称。该提供商使用卫星确定位置。根据条件,此提供程序可能需要一段时间才能返回定位修复。需要权限android.permission.ACCESS_FINE_LOCATION。 网络 - >(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”,并根据任务的不同,在提供商之间切换。这涵盖了所有情况,并提供最低公分母服务(在最坏的情况下)和优质服务(在最好的情况下)。

--------------------------------------------------------

用户回答回答于

GPS通常比网络更准确,但有时GPS不可用,因此您可能需要在两者之间切换。

一个好的开始可能是看一下android dev的网站。他们有一个专门用于确定用户位置的部分,它具有你需要的所有代码示例。

扫码关注云+社区