0

我用 C# 为 Windows Phone 和 Java 的 Android 编写应用程序。我在每个市场上都有类似的应用程序,它们都使用 GPS 来跟踪手机移动时的移动。当手机外出移动时,互联网连接当然会进出。

我的两个版本的应用程序都将 GPS 读数传输到我的云服务器 REST 服务,并将它们记录到数据库中。如果该应用程序没有互联网连接,它会将 GPS 位置保存在手机上,然后,当互联网连接恢复时,它会将其所拥有的信息发送到云服务器。此过程在 Windows 手机中运行良好。

但是对于 Android,当没有互联网连接时,我的 LocationListener 中的 onLocationChanged 事件不会随着手机的移动而被触发。当没有互联网信号时,它就像 GPS 关闭一样工作。这对我来说毫无意义。它应该以这种方式工作吗?为什么 GPS 需要互联网连接才能工作?谢谢,加里

编辑:我们从进一步的测试中发现,互联网可用性与 onLocationChanged 事件的失败无关。大约 20 分钟到几个小时后,该事件在我们的服务中停止触发,我们找不到任何原因。

4

1 回答 1

0

没有 获取 GPS 不一定需要互联网

但是以稳定、有效和兼容的方式使用 GPS 获取正确的坐标是一团糟。

如果GPS 响应不佳,您通常会在提供商之间切换并利用互联网给出良好的估计。

确保 GPS 正常工作并找到良好的信号,因为互联网可以提高 GPS 初始化速度。

GPS加载速度真的很慢。可能需要 6 到 8 分钟,尤其是在覆盖范围很差的情况下。只有在 GPS 实际确定其位置之后。在最初的几分钟内,您不会看到任何东西,因为没有发生任何更新。

也许你使用NETWORK_PROVIDER而不是GPS_PROVIDER.

像这样

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

尝试使用:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

如果互联网不可用。

尝试同时使用两者,有很多很好的例子可以确保您获得最佳位置。不要重新发明那个轮子;)

于 2013-07-07T00:51:38.780 回答