我正在使用 PhoneGap API 进行地理定位。我已将 enableHighAccuracy 选项设置为“true”。代码 3,超时过期选项不断弹出,但仅在某些 android 设备上,并且在使用应用程序时不止一次。
请帮帮我......为什么会这样,它只在某些安卓设备上失败。如果我将精度设置为 false,那么在检索坐标时我会得到多少差异......
我正在使用 PhoneGap API 进行地理定位。我已将 enableHighAccuracy 选项设置为“true”。代码 3,超时过期选项不断弹出,但仅在某些 android 设备上,并且在使用应用程序时不止一次。
请帮帮我......为什么会这样,它只在某些安卓设备上失败。如果我将精度设置为 false,那么在检索坐标时我会得到多少差异......
设法使用以下代码解决了我的问题:
var options = {maximumAge: 0, timeout: 10000, enableHighAccuracy:true};
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
三星 Galaxy 手机似乎不喜欢缓存 gps 位置。
好的,这里如何解决问题:
添加超时并设置 enableHighAccuracy:
navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 10000, enableHighAccuracy: true});
在某些模拟器中,您需要将 enableHighAccuracy 设置为 false,因此请尝试如果仍然不起作用。
在 Android 中,模拟器不读取 GPS 值,因此我们需要通过命令行发送它们。我们需要在模拟器运行的端口中启动一个 telnet 会话(你可以在模拟器窗口标题中查看端口,开头的数字,在我的例子中是 5554):
telnet localhost 5554
然后运行命令
geo fix -122.4 37.78
如果您关闭应用程序,您需要重新发送地理位置,所以如果它不起作用,只需geo fix
在打开应用程序后,在超时事件触发之前运行命令。
我在三星 Galaxy Note II (Android 4.1.1) 上遇到了同样的错误。出于某种原因,当位置设置下的“使用无线网络”打开时,它可以工作,但如果它关闭,则会出现代码 3 错误。它没有发生在 Nexus 7 (4.2.2) 上。
哎呀,在这里发现了同样的问题。希望有比要求用户更改其 GPS 设置更好的方法。三星盖乐世 III
(在没有此选项的情况下“使用无线网络查找位置”失败时有效)