Более чем один провайдер местоположения одновременно - PullRequest
4 голосов
/ 20 марта 2012

У меня проблемы с системами определения местоположения. У меня есть сервис, который реализует Locationlistener. Я хочу получить лучшее местоположение, используя сеть, когда это возможно, GPS, если сеть недостаточно точна (точность выше 300 м). Проблема в этом. Мне нужно местоположение (если возможно, точное, иначе неточное) каждые 5 минут. Я начинаю с:

    LocationManager lm=(LocationManager)getApplicationContext().getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);        
    String provider=lm.getBestProvider(criteria, true);
    if(provider!=null){


    lm.requestLocationUpdates( provider,5*60*1000,0,this);

В "onLocationChanged" я слушаю местоположения, и когда я получаю местоположение с точностью более 300 м, я хочу перейти на систему определения местоположения GPS.

Если я удаляю allupdates и затем запрашиваю обновления gps, как это:

lm.removeUpdates((android.location.LocationListener) this);
Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);        
    String provider=lm.getBestProvider(criteria, true);
    if(provider!=null){
    lm.requestLocationUpdates( provider,5*60*1000,0,this);
    }

система перестает ждать gpsupdate, и если я нахожусь в закрытой комнате, она может часами оставаться без обновлений местоположения, игнорируя показания timeupdate. Есть ли способ сказать locationprovider для переключения на сеть, если GPS не дает местоположение в «х» секунд? или как понять когда gps не локализуется?

или, если я запрашиваю обновление обновлений у 2 провайдеров одновременно (сеть и gps), может быть проблема?

Есть предложения?

1 Ответ

1 голос
/ 20 марта 2012

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

Если вы идете по дороге GPS в Android, это необходимо прочитать. Он отвечает на ваш вопрос выше и многое другое. Поверь мне, это стоит твоего времени.

В каждом SDK есть примеры, которые реализуют полезные примеры. Я почти уверен, что это был пример местоположения.

...