2014-01-04 3 views
1

я получил общее неправильное расположение в моем LocationManagerЕсть неправильное расположение в LocationManager

locationService = (LocationManager) getSystemService(LOCATION_SERVICE); 

    Log.i(log_tag, "get best provider"); 
    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 
    provider = locationService.getBestProvider(criteria, true); 


    clearLocationCache(provider); 

    Location location = locationService.getLastKnownLocation(provider); 

После того, как я был в Москве и получил место в моем приложении, но когда я приехал в Лондон, я получил то же место на моем устройстве. Я получил правильное местоположение только после перезагрузки моего устройства Android.

+0

Вы получаете последнее известное местоположение, которое означает, что ваше текущее местоположение не обновляется в Location Tracker, поэтому вы получаете старое местоположение. я так думаю ... –

+0

сообщение 'onLocationChanged' код пожалуйста –

+0

Пожалуйста, отправьте полный код. –

ответ

0

Причина исходит от этой линии

locationService.getLastKnownLocation(provider); 

как он всегда возвращает последнее известное местоположение

+0

Уход за пояснением, как заставить место для обновления? –

+0

Как я могу принудительно обновить свое местоположение? –

0

Лучший способ получить местоположение либо GPS или сети использовать эти разрешения.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

Вы давали эти разрешения?

+0

У меня есть все разрешения в моем файле AndroidManifest.xml. –

+0

после ** locationService.getLastKnownLocation (поставщик); ** использовать ниже, чтобы получить новое место по истечении определенного времени или расстояний и не забудьте удалить эти обновления местоположения после того, как работа выполнена ** locationManager.requestLocationUpdates (поставщик , продолжительность, distanceInMeter, это); ** – nikhilgotan

+0

Запрос ACCESS_FINE_LOCATION подразумевает запрос для ACCESS_COARSE_LOCATION – simo

0
LocationManager location = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
location.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
Смежные вопросы