использование api местоположения в android

Возможный дубликат:
Какой самый простой и надежный способ узнать текущее местоположение пользователя в Android?

Я изучал api местоположения для Android и пробовал базовые приложения, которые используют метод locationChanged и предоставляют простейшее решение для отслеживания местоположения использования.

Как можно отслеживать следующие действия пользователя в одном контексте

  • пользователь вводит новое местоположение
  • пользователь покидает текущее местоположение

а также о следующих факторах:

  • новое местоположение не ближе, скажем, x метров от старого местоположения
  • и атрибуты, необходимые для сравнения последнего и нового местоположения

person Himanshu Soni    schedule 20.11.2012    source источник


Ответы (1)


Это неплохо. Официальный Android SDK по этому поводу на самом деле довольно хорош. Официальная документация Google по нему

По сути, интерфейс, который он использует, запускает функции при возникновении каждой из этих ситуаций. Итак, onLocationChanged вызывается всякий раз, когда местоположение изменяется в зависимости от того, какой параметр запускает это. Кроме того, я бы порекомендовал просто поиграть с разными типами провайдеров.

Самая сложная часть - это дистанционная часть. Существуют уравнения для расчета расстояния с использованием долготы и широты.

Из документации:

// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      // Called when a new location is found by the network location provider.
      makeUseOfNewLocation(location);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
person Joe Plante    schedule 20.11.2012