我已经使用Android和2.2模拟器了一段时间,刚开始遇到问题。我的地理位置未在模拟器中设置。起初我以为PhoneGap 0.92是一个问题,但是在恢复为.91并打开一个较旧的项目后,同样适用。在DDMS中,设置了我的坐标,然后“发送”它们。我也进行telnet并发出geo fix命令,我得到一个好的响应。看起来一切都很好,但是由于某种原因,仿真器仍然没有任何线索。

我发现一些较旧的帖子有关:设置时区。我做到了仍然没有运气。我什至使用浏览器访问html5demos.com/geo,看看它是否可以找到我,但找不到。

这曾经奏效,不知道从那以后发生了什么。我更新了Java 1.6.0.22版本。 Android SDK是2.2,API 8,修订版2。

任何提示或技巧将不胜感激。我被困在这一点上。

我的Phonegap/JS调用:

var getLocation = function() {
  var suc = function(p){
        alert(p.coords.latitude + " " + p.coords.longitude);
  };
 var fail = function(error){
    alert('code: '    + error.code    + '\n' +
            'message: ' + error.message + '\n');
  };
  navigator.geolocation.getCurrentPosition(suc,fail);
}

“失败”不断发生。错误代码2。最后一个位置提供程序已被禁用。

- 更新
仍然有同样的问题。我在夏天发现了一个较旧的 map 绘制应用程序,当时是2.1。因此,我重新编译了该代码,并在2.1模拟器上运行了该代码,但这也无法正常工作。当我在DDMS中并将坐标发送到2.1时,有趣的是在 eclipse 中,我“看到”确认已在模拟器中发送,但对于2.2,我没有看到。

最大的不同是,我现在要从事代理工作(新工作),而以前没有。我想我可以在家尝试...不确定那是否重要。

最佳答案

您必须将enableHighAccuracy放入getCurrentPosition中,例如:

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

接下来,您必须通过telnet进入仿真器,并地理定位所需的位置(经度,纬度):
kelvin@locahost:~$ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
geo fix 101.689453 3.074695
OK
quit
Connection closed by foreign host.

然后运行您的PhoneGap应用。

关于geolocation - Android模拟器的地理位置出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4169061/

10-11 22:38
查看更多