Комментарии 28
Я правильно понимаю, что это работает только при включенном интернете? Т. е. просто при работе только GPRS эффекта не будет.
Получается что мы получили местоположение и отрубились? Что можно поменять, чтобы отслеживание местоположения шло постоянно, каждую секунду, как например в навител навигаторе.
Простите за ламерский вопрос.
Простите за ламерский вопрос.
для этого нужно не отрубаться :)
Дотстаточно прописать
Когда подключение случится, можно будет подписаться на получение координат
и получать их в методе
Дотстаточно прописать
mLocationClient.connect();
Когда подключение случится, можно будет подписаться на получение координат
mLocationClient.requestLocationUpdates(mLocationRequest, this);
и получать их в методе
public void onLocationChanged(final Location location)
А можно пример изменений что в вашем коде на гитхабе?
Премного буду благодарен!
Премного буду благодарен!
У вас в методе
стоит
Эта строка разве не вырубит обновление?
У меня в данном методе
без вышеперечисленной строчки. Вроде полет нормальный.
public void locationUpdate(final Location location)
стоит
locationListener.disableMyLocation();
Эта строка разве не вырубит обновление?
У меня в данном методе
myLat = location.getLatitude();
myLng = location.getLongitude();
myLatLnd = new LatLng(myLat, myLng);
myMap.animateCamera(CameraUpdateFactory.newLatLng(myLatLnd), 1000, null);
без вышеперечисленной строчки. Вроде полет нормальный.
Да, вырубить, просто в примере у меня разовое использование. и все правильно, убрать нужно для вашего случая
ocationListener.disableMyLocation();
Судя по коду, вы делаете следование за местоположением. Все можно гораздо проще сделать, без моего кода
googleMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(final Location location)
{
googleMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(),location.getLongitude())));
}
});
Если необходимо обновление в режиме реально времени, то переменные
обратить в ноль?
UPDATE_INTERVAL_IN_MILLISECONDS и FAST_INTERVAL_CEILING_IN_MILLISECONDS
обратить в ноль?
В доках говорят An interval of 0 is allowed, but not recommended, since location updates may be extremely fast on future implementations.
Так что я бы не стал, можете выставить 500 и думаю будет достаточно. Даже одной секунды вполне хватит.
Так что я бы не стал, можете выставить 500 и думаю будет достаточно. Даже одной секунды вполне хватит.
Я чего-то не понимаю, или вы решили согреть пользователя?
Да и доступ к переменной mLocation никак не синхронизирован. Вы же читаете ее в цикле из другого потока…
while (this.mLocation == null && System.currentTimeMillis() - sec < TIME_OUT) {}
Да и доступ к переменной mLocation никак не синхронизирован. Вы же читаете ее в цикле из другого потока…
На моем телефоне падает:
В location null. На Samsung Ace 2
java.lang.NullPointerException at com.raxel.utils.LocationHelper.useCurrentLocation(LocationListenerGPServices.java:107)
В location null. На Samsung Ace 2
Любопытно. А чем этот способ отличается от получения местоположения через LocationManager?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Определение местоположения пользователя с помощью Сервисов Google Play