电话需要连接到互联网,以便网络提供商确定位置吗?

8
手机需要一直连接到互联网吗,以便网络提供商可以确定位置?
当我在手机上测试我的应用程序时,在“设置->位置”中只勾选了“使用无线网络”,并且我没有通过Wi-Fi连接到互联网,我无法获取位置信息。
我知道网络服务提供商使用基站的可用性,但我不知道具体是如何工作的,我是否需要完全接入互联网。
请有经验的人为我解答。

你的代码中是否使用了“network”位置提供程序?(它可能被命名为不同的名称)你是否在任何地方收到了异常?你是否收到了0,0修复、错误修复或者根本没有修复返回? - tugs
我根本没有得到任何修复。如果我没有连接互联网,就无法获得位置修复。一旦我连接上,位置就被找到了。我正在使用网络提供商,我还尝试使用设置标准的提供商:accuracy_fine和accuracy_coarse,使用此链接(http://www.alonsoruibal.com/using-two-locationproviders-on-android/)。在浏览网页寻找答案时,我发现了类似于我的问题的内容( http://stackoverflow.com/questions/4455802/android-if-both-gps-network-are-requested-at-the-same-time-network-provider-d)。如果您有什么想法,请分享。 - Sandra
即使我已连接,但数据计划已用尽时,我也会遇到这种情况。似乎有些供应商需要向手机发送移动数据才能使网络提供商位置工作。 - Glenn Bech
2个回答

11

是的,您需要连接到互联网才能获得正确的网络位置定位。至少大部分时间如此。

手机可以收集以下数据(不需要连接到互联网即可完成):

  • 通过扫描WiFi接入点获取附近的WiFi信息
  • 手机的蜂窝电台可以提供附近的移动蜂窝信息

然后,手机会将这些数据发送到服务器。服务器使用这些数据在其数据库中查找以确定手机最可能的位置。服务器将位置信息发送回手机。所有这些都是通过互联网上的数据连接完成的(无论是移动互联网还是WiFi)。

有些实现额外下载了一小部分服务器的数据库到手机上(描述手机当前位置周围的小区域),以便手机不必一直查询互联网。 但是,一旦手机移动到这个小区域之外,它将需要再次访问互联网以获得正确的位置。

所以基本上,没有互联网连接,您就不能(可靠地)使用网络位置。


这似乎是一个可能的情况,我正在经历类似的结果。如果一旦在有互联网的情况下接收到位置信息,您将会持续接收它们(即使没有互联网),直到您离开该特定的单元格区域,一旦移动,没有互联网,您将不会获得任何新的位置更新。 - Ayush Goyal
1
很棒的回答。对此我有一个问题:安卓会缓存这些下载的小区域,并在我们再次访问该位置时使用它们吗? - Anil VK
@AnilVK 是的,它确实如此。 - David Wasser
谢谢。你能提供更多关于缓存的信息吗?有几个问题:1. Android 会保留这些缓存数据多久?2. 在设备离线时,它是否使用加速度计或指南针来结合缓存数据提供位置信息?3. 是否有办法删除这些缓存数据? - Anil VK
@AnilVK 不好意思,我不能给你更多的细节。这可能是制造商特定的解决方案,我想有许多因素控制它。然而,据我所知,指南针和加速度计不用于位置计算。您可以从“设置”>“应用程序”>“管理应用程序”>“全部”(选项卡)>“网络位置”手动清除位置缓存,单击它以打开并单击“清除数据”。 - David Wasser
显示剩余3条评论

0

我预计网络位置会根据运营商的不同而有所不同。它需要连接到网络,而且我不会感到奇怪如果这被归类为数据连接。

你可以通过实验来自己找出答案,但这可能是你提出这个问题的原因。

要得到一个确定的答案,你可能需要与运营商的某个人交谈。如果他们有开发者计划,那将是你最好的选择。

希望这对你有所帮助。


谢谢您的回答,但我的问题只是,我是否需要连接互联网才能从网络提供商接收位置修复(GPS未激活)?网络提供商是如何工作的?如果可能的话,有人能详细解释一下吗?谢谢。 - Sandra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接