0

我正在创建一个获取用户位置的应用程序。这些应用程序使用 3G 可以正常工作,当我禁用 3G 并想仅使用 GPS 运行应用程序时,问题就出现了,该应用程序甚至无法启动。

我有的代码:

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

function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                        'Longitude: '          + position.coords.longitude             + '<br />' +
                        'Altitude: '           + position.coords.altitude              + '<br />' +
                        'Accuracy: '           + position.coords.accuracy              + '<br />' +
                        'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                        'Heading: '            + position.coords.heading               + '<br />' +
                        'Speed: '              + position.coords.speed                 + '<br />' +
                        'Timestamp: '          + new Date(position.timestamp)          + '<br />';
}

function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
} 
4

3 回答 3

8

地理位置并不意味着您将使用 GPS。默认情况下,您将使用网络位置。您必须启用高精度!

于 2013-01-14T19:15:26.713 回答
2

确保您在清单中的权限包括 Position.FINE,以便您的应用程序将被允许使用 gps 接收器。

于 2013-01-14T19:17:04.417 回答
2

转到您的 Android 清单并检查您是否有权执行此操作。

于 2013-01-14T19:23:36.503 回答