7

我正在使用 PhoneGap API 进行地理定位。我已将 enableHighAccuracy 选项设置为“true”。代码 3,超时过期选项不断弹出,但仅在某些 android 设备上,并且在使用应用程序时不止一次。

请帮帮我......为什么会这样,它只在某些安卓设备上失败。如果我将精度设置为 false,那么在检索坐标时我会得到多少差异......

4

4 回答 4

10

设法使用以下代码解决了我的问题:

var options = {maximumAge: 0, timeout: 10000, enableHighAccuracy:true};
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);

三星 Galaxy 手机似乎不喜欢缓存 gps 位置。

于 2013-10-28T16:52:11.347 回答
5

好的,这里如何解决问题:

  1. 添加超时并设置 enableHighAccuracy:

    navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 10000, enableHighAccuracy: true});
    

    在某些模拟器中,您需要将 enableHighAccuracy 设置为 false,因此请尝试如果仍然不起作用。

  2. 在 Android 中,模拟器不读取 GPS 值,因此我们需要通过命令行发送它们。我们需要在模拟器运行的端口中启动一个 telnet 会话(你可以在模拟器窗口标题中查看端口,开头的数字,在我的例子中是 5554):

    telnet localhost 5554
    

然后运行命令

    geo fix -122.4 37.78

如果您关闭应用程序,您需要重新发送地理位置,所以如果它不起作用,只需geo fix在打开应用程序后,在超时事件触发之前运行命令。

于 2014-04-18T11:02:32.697 回答
2

我在三星 Galaxy Note II (Android 4.1.1) 上遇到了同样的错误。出于某种原因,当位置设置下的“使用无线网络”打开时,它可以工作,但如果它关闭,则会出现代码 3 错误。它没有发生在 Nexus 7 (4.2.2) 上。

于 2013-08-01T05:51:38.653 回答
0

哎呀,在这里发现了同样的问题。希望有比要求用户更改其 GPS 设置更好的方法。三星盖乐世 III

(在没有此选项的情况下“使用无线网络查找位置”失败时有效)

于 2014-12-12T23:20:58.633 回答