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
Android清单权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
答案 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,因为缺少许多功能和错误。