Шаг 4. Определение местоположения

Шаг 4. Определение местоположения

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:17

Android позволяет определять местоположение двумя способами:
    • по GPS адаптеру;
    • по положению базовых станций и точек доступа Wi-Fi.

GPS является более точным методом определения положения, но может работать только на открытом воздухе, быстро сажает батарею и не возвращает положение так быстро, как хотелось бы, поэтому имеет смысл пользоваться одним из двух методов в зависимости от ситуации и конкретных задач.

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

Код: выделить все
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000L, 500.0f, myLocationListener);
Теперь необходимо перегрузить метод onLocationChanged(Location location) в LocationListener, который будет обрабатывать полученные координаты.
public void onLocationChanged(Location location) {
    if (location != null) {
        double lat = location.getLatitude();
        double lng = location.getLongitude();
        // Необходимые действия с координатами
    }
}


После окончания работы необходимо сообщить системе, что новые данные о положении больше не нужны:
Код: выделить все
lm.removeUpdates(myLocationListener);

Если используется определение положения по базовым станциям и Wi-Fi, то необходимо разрешение ACCESS_COARSE_LOCATION. Если же используется GPS, то следует указать в манифесте разрешение ACCESS_FINE_LOCATION. Причем, если используются оба метода, то будет достаточно одного разрешения ACCESS_FINE_LOCATION.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Вернуться в 4. Использование периферии

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron