Geolocation Android Emulator存在地理位置问题

Geolocation Android Emulator存在地理位置问题,geolocation,android-emulator,cordova,Geolocation,Android Emulator,Cordova,我使用Android和2.2模拟器已经有一段时间了,但刚开始遇到问题。未在模拟器中设置我的地理位置。起初我认为这是PhoneGap 0.92的问题,但在恢复到.91并打开一个较旧的项目后,情况也是如此。在DDMS中,我设置了坐标,并“发送”它们。我还远程登录并发出geo-fix命令,得到了OK响应。看起来一切正常,但由于某种原因,模拟器仍然没有任何线索 我发现了一些旧帖子:设置时区。我做到了。还是不走运。我甚至使用浏览器,去html5demos.com/geo看看它是否能找到我,但它没有 这曾经

我使用Android和2.2模拟器已经有一段时间了,但刚开始遇到问题。未在模拟器中设置我的地理位置。起初我认为这是PhoneGap 0.92的问题,但在恢复到.91并打开一个较旧的项目后,情况也是如此。在DDMS中,我设置了坐标,并“发送”它们。我还远程登录并发出geo-fix命令,得到了OK响应。看起来一切正常,但由于某种原因,模拟器仍然没有任何线索

我发现了一些旧帖子:设置时区。我做到了。还是不走运。我甚至使用浏览器,去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。上一个位置提供程序已禁用

--更新 仍然有同样的问题。我发现了一个我在夏天使用过的旧的映射应用程序,它是2.1。所以我重新编译并在2.1模拟器上运行了它,但它也不起作用。有趣的是,在eclipse中,当我在DDMS中并将坐标发送到2.1时,我“看到”一个确认,即它已在模拟器中发送,但在2.2中我没有


最大的区别是我现在支持一个代理(新工作),而以前我不是。我想我可以在家试试……不确定这是否重要。

我也有同样的问题。解决方案位于的末尾(向下滚动):

“安卓怪癖

Android 2.x模拟器不会返回地理定位结果,除非EnableHighAccurance选项设置为true

{enableHighAccurance:true}”


因此,您必须在navigator.geolocation.getCurrentPosition和navigator.geolocation.watchPosition调用中设置EnableHighAccurance。

我发现的唯一可行方法是将telnet发送到模拟器,并在触发我正在测试的代码后发出“地理定位经度纬度”。类似的内容模拟挪威特隆赫姆的GPS坐标(模拟器的端口通常为5554,但这可能随您的设置而变化):


有关仿真的更多信息,请参见

您必须将EnableHighAccurance放入getCurrentPosition,例如:

navigator.geolocation.getCurrentPosition(onSuccess, onError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true });
接下来,您必须远程登录emulator,并对所需位置(经度、纬度)进行地理定位:

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应用程序。

请在
navigator.geolocation.getCurrentPosition(suc,fail)中添加
geolocationOptions{enableHighAccurance:true}

这对我有用

Android 2.x模拟器不会返回地理定位结果,除非EnableHighAccurance选项设置为true


在DDMS中,必须设置我的坐标,然后你“发送”它们。

你试过了吗/它在手机上工作吗?谢谢你的提示。但是..仍然没有工作:(我认为这是仿真器的问题(可能).首先,每次我启动它,我都会因为某种原因得到一个愚蠢的日本键盘。如果我使用纯HTML5应用程序从Chrome获取位置,它就不起作用了。像这样->。它在我的浏览器中起作用,但在模拟器浏览器中不起作用。我测试了html5demos.com/geo,这对我来说也不起作用。但它对我自己的所有网站都起作用。…太棒了,这对我很有效,谢谢:)哦,还有请注意,根据我的实验,在每次getcurrentposition调用之前,您需要运行geo修复程序。难道不是更烦人吗sure@MikeIsrael要让它变得更烦人是很难的。
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.