GPS не работает (веб-приложение для Android) - PullRequest
1 голос
/ 08 сентября 2011

Я пишу веб-приложение для мобильных телефонов, и мне нужно использовать геолокацию.

Я написал: (javascript)

function GeoLocationStart(){
    if(navigator.geolocation){
               navigator.geolocation.getCurrentPosition(onSuccess,onError);
            }
            else{
               alert("Functionality not available");
            }
}

function onSuccess(position) {
    var initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
    map.setCenter(initialLocation);
    var userMarker = new google.maps.Marker({
          position: initialLocation,
          map: map,
          title: "You're here",
          icon: face
        });     
    userMarker.setMap(map);

    var userhtml = "It's you!";
    var UserInfoWindow = new google.maps.InfoWindow({content: userhtml});   

    google.maps.event.addListener(userMarker, 'click', function() {     
            UserInfoWindow.open(map, userMarker);
          });
};

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

Работает нормально, но без GPS.

Хотя я установил в Android права доступа к файлу манифеста:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<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" />

приложение не запускается даже при поиске спутников. (Конечно, я проверил GPS на своем телефоне, он работает в других приложениях)

Как включить GPS?

Спасибо

1 Ответ

1 голос
/ 08 сентября 2011

Я нашел решение.

После того, как местоположение было найдено с помощью беспроводной сети, GPS перестал работать, потому что цель была достигнута - местоположение определено!

Чтобы продолжить поиск позиции, я написал

var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { frequency: 3000 });

, поэтому запущен GPS.

...