我正在使用PhoneGap API进行地理定位。我已将enableHighAccuracy选项设置为“true”。代码3,超时过期选项不断弹出,但仅在某些Android设备上使用该应用程序时不止一次。
请帮帮我......为什么这只会在某些Android设备上失败。如果我将准确度设置为false,我将在检索坐标时获得多少差异......
答案 0 :(得分:10)
使用以下代码管理解决我的问题:
var options = {maximumAge: 0, timeout: 10000, enableHighAccuracy:true};
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
似乎三星Galaxy手机不喜欢缓存gps位置。
答案 1 :(得分:5)
好的,这里有如何解决问题:
添加超时并设置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
命令,然后才会触发超时事件。
答案 2 :(得分:2)
我在Samsung Galaxy Note II(Android 4.1.1)上遇到了同样的错误。出于某种原因,当位置设置下的“使用无线网络”打开时,它可以正常工作,但如果它关闭则会出现代码3错误。它没有发生在Nexus 7(4.2.2)上。
答案 3 :(得分:0)
(当"使用无线网络找到位置"没有此选项时失败)