Местоположение LocationManager в Android возвращает ноль - PullRequest
2 голосов
/ 25 августа 2011

Я тестирую свое Android-приложение на устройстве, и оно всегда дает сбой при использовании

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

Однако, если я использую NETWORK_PROVIDER вместо GPS_PROVIDER, это работает. CurrentLocation возвращает ноль.

Как я могу справиться с этим? Есть ли что-то конкретное, что мне нужно добавить в мой locationListener?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

GPS_PROVIDER может не работать в ограниченном месте, предположим, внутри дома или что-то в этом роде. Вы должны запрограммировать его так, чтобы, если провайдер gps дал нулевое местоположение, вы использовали в качестве альтернативы провайдера сети, хотя его точность не так высока. Здесь есть еще одна проблема. Ваш код должен быть следующим:

     if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
{
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
1 голос
/ 25 августа 2011

Прежде всего, убедитесь, что значок GPS в строке состояния устройства перестал мигать, что означает, что у вас действительно есть блокировка GPS.

Вызов возвращает ноль, если местоположение в данный момент неизвестно, например, если у вас нет блокировки GPS.

...