我是IBM Worklight的新手。使用谷歌地图我需要使用gps获取设备的当前位置。
我在模拟器上没有收到任何错误,但在手机中收到以下警告
{“message”:.“无法启动地理定位服务”,“代码”:2}
以下代码正在使用。
function alertGeo() {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
function onSuccess(position) {
codeLatLng(position.coords.latitude,position.coords.longitude);
}
function onError(error) {
alert(JSON.stringify(error));
}
}
function codeLatLng(lat,lng) {
var latlng = new google.maps.LatLng(lat, lng);
geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
alert("Address: " + results[1].formatted_address);
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
}
答案 0 :(得分:2)
确保您在android \ native \ AndroidManifest.xml中设置了以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
还尝试添加enableHighAccuracy: true
选项:
navigator.geolocation.getCurrentPosition(onSuccess, onError, {enableHighAccuracy: true});