Как удалить только сетевого провайдера, если мой слушатель слушает и сеть, и спутниковый GPS?

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

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

Я нашел этот вопрос, и выбранный ответ действительно очень помог: Android LocationListener Switching from GPS в сеть

Но была только одна часть, которая меня смутила. Он сказал: Вы настраиваете один и тот же LocationListener для обоих провайдеров. Чтобы определить, откуда вы получаете местоположение, вам нужно проверить его следующим образом:

public void onLocationChanged(Location fix) {
    if(fix.getProvider().equals(LocationManager.GPS_PROVIDER)){
        //here Gps
    } else if(fix.getProvider().equals(LocationManager.NETWORK_PROVIDER)){
        //here Network
    }
}

так что если это так, как мне отключить получение обновлений только от сетевого провайдера? потому что, если я использую один прослушиватель, который прослушивает и GPS, и сеть, то, когда я делаю removeUpdates(thatListener), этот прослушиватель больше не будет получать обновления GPS (спутниковые или сетевые).

но если он говорит, что я сделаю 2 прослушивателя, которые абсолютно одинаковы (кроме одного для спутника, один для сети), то мне не нужно будет проверять, какой провайдер дал местоположение, потому что у каждого слушателя будет свой onLocationChanged метод. Я что-то упускаю? У меня недостаточно репутации, поэтому я не могу комментировать его ответ напрямую.

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

Большое тебе спасибо! :)


person Gwapo Gwapo    schedule 17.09.2014    source источник


Ответы (1)


Я предполагаю, что новый провайдер определения местоположения Fused создан для удовлетворения ваших потребностей. Позвольте Google сделать эту работу за вас и всегда берите в подарок лучшего поставщика услуг. Для этого вам понадобится установленный сервис Google Play, но в основном это не проблема. Благодаря этому настройка службы определения местоположения стала намного проще. Хороший пример см. здесь.

person Kevin Gebhardt    schedule 17.09.2014
comment
привет, сэр. В настоящее время у меня проблемы с непрозрачностью моего запроса WMS, пожалуйста, помогите по адресу stackoverflow.com/questions/27936381/. Спасибо :) - person Gwapo Gwapo; 20.01.2015