Android手机上的“无法启动地理定位服务代码:2”错误

时间:2014-11-26 04:04:24

标签: android ibm-mobilefirst w3c-geolocation

我是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);
        }
      });
    }

1 个答案:

答案 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});