phonegap地理定位,代码3 - 超时过期一直在某些Android设备上弹出

时间:2013-04-28 12:30:59

标签: android cordova geolocation

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

请帮帮我......为什么这只会在某些Android设备上失败。如果我将准确度设置为false,我将在检索坐标时获得多少差异......

4 个答案:

答案 0 :(得分:10)

使用以下代码管理解决我的问题:

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

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

答案 1 :(得分:5)

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

  1. 添加超时并设置enableHighAccuracy:

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

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

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

    telnet localhost 5554
    
  3. 然后运行命令

        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)

哎呀,在这里发现同样的问题。希望有一个更好的方法,比要求用户友好地改变他们的GPS设置。 三星Galaxy III

(当"使用无线网络找到位置"没有此选项时失败)