【问题标题】:Getting multiple NETWORK_PROVIDER from LocationManager从 LocationManager 获取多个 NETWORK_PROVIDER
【发布时间】:2012-08-08 04:55:42
【问题描述】:

LocationManager 在获取位置数据时如何选择使用哪个 NETWORK_PROVIDER?我希望能够识别 LocationManager 从中选择 NETWORK_PROVIDER 的提供者。

例如,附近有两个 NETWORK_PROVIDER 位置,X(靠近)和 Y(不那么靠近)。当站在一个位置时,有时 NETWORK_PROVIDER 将是 X,有时是 Y。我假设返回精度最高的位置(这就是通常返回 X 的原因),并且所有其他网络都被忽略,但我想同时返回所有附近网络(或至少前 2 或 3 个)的列表。

任何 .getProvider() 方法(据我所知)都返回提供者的类型(网络、gps、被动),但没有任何东西可以实际识别提供者。返回位置时,位置数据对于提供者来说是唯一的,但不能用于选择提供者。我可以从 X 获取数据,但我不能告诉程序忽略 X(或者我可以吗?)。

无论如何要做到这一点?要返回 NETWORK_PROVIDERS 的列表或数组,然后逐步通过它们获取位置数据?

不,使用 GPS_PROVIDER 不是一个可接受的答案,因为我只需要 NETWORK_PROVIDER 数据。

【问题讨论】:

    标签: android networking provider locationmanager


    【解决方案1】:

    这个答案不是基于任何证据,而是我对位置提供者如何工作的理解。当您请求 NETWORK_PROVIDER 时,您基本上是在要求它为您提供他们根据所有可用信息估计的位置。例如,您可能有 3 个 wifi 网络和 2 个手机信号塔,并且该信息被发送到 Internet 上的服务器。使用该信息,他们会计算出他们认为您在哪里,并将其返回给您。因此,换句话说,network_provider 位置基于您手机可用的所有 wifi/cell-tower 信息的总和。

    就个人而言,wifi 热点不会告诉您太多关于您所在位置的信息。手机信号塔会为您提供一些位置信息,但您需要一些来源才能准确地对您的位置进行三角测量。另外,请注意您需要互联网/数据连接,因为该位置是由某些服务器确定的,而不是在您的手机上完成的。这是因为如果没有将每个热点映射到其物理位置的数据库,了解附近的 wifi 热点(更具体地说是 MAC 地址)是没有用的。

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多