PhoneGap的。无法启动地理定位服务

时间:2012-10-09 09:44:00

标签: cordova android-emulator

PhoneGap版本:2.0.0。 Android API级别16(4.0.3版本)。提示错误的代码示例:

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

function onSuccess(position) {
    console.log('latitude: '+ position.coords.latitude);
    console.log('longitude: '+ position.coords.longitude);                  
}

function onError(error) {
    console.log('Appeared error : '+ error.message);                
}

始终在模拟器Failed to start Geolocation service中收到错误,错误代码为2。即使通过 Android控制台 DDMS

发送GPS坐标

Android清单权限:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

3 个答案:

答案 0 :(得分:6)

您是否仅在模拟器上进行测试?地理定位服务在我的Android模拟器中总是失败,但在真实设备上却没有。

编辑:请尝试使用以下代码

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(myPositionSuccess, myPositionError, {maximumAge: 300000, timeout:10000, enableHighAccuracy : true});
};

答案 1 :(得分:6)

在尝试获取位置时,您需要将enableHighAccuracy选项设置为true

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

此外,要指定模拟器中位置的坐标

Eclipse - &gt;开放视角 - &gt; DDMS - &gt;模拟器控制 - &gt;位置控制

指定位置的坐标,然后按“发送”

答案 2 :(得分:0)

我已经尝试解决这个问题好几周了。我搜索网络,似乎大多数人都有关于phonegap的问题,无论何时他们正在为Android开发。解决方案是在具有GPRS的设备上测试我的代码。还要确保在运行代码之前启用GPRS和wifi。避免使用模拟器测试GPRS,因为缺少许多功能和错误。