Может ли getBestProvider вернуть ноль?

1

В следующем фрагменте кода:

 Criteria criteria = new Criteria();
 Criteria.setAccuracy(Criteria.ACCURACY_COARSE);
 criteria.setAltitudeRequired(false);
 criteria.setBearingRequired(false);        
 criteria.setCostAllowed(true);
 criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);         
 String provider = DP.lm.getBestProvider(criteria, true);

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

Как это можно решить? Будет ли вызов getBestProvider когда-либо возвращать null в таком случае?

Теги:

1 ответ

1
Лучший ответ

В документации указано, что:

Возвращает имя поставщика, который наилучшим образом соответствует заданным критериям. Возвращаются только поставщики, которым разрешен доступ к вызывающей деятельности. Если несколько поставщиков отвечают критериям, возвращается лучшая точность. Если ни один из поставщиков не соответствует критериям, критерии ослабляются в следующей последовательности: требования к мощности, точность, несущая способность, скорость, высота

Обратите внимание, что требование о денежной стоимости не устраняется в этом процессе.

Таким образом, все еще возможно, что вы не можете найти поставщика, который удовлетворяет всем вашим требованиям. В этом случае возвращается null. Это не в документации, но я могу это исправить из своего личного опыта.

Чтобы этого избежать, вы можете обратиться к поставщику напрямую, если метод getBestProvider возвращает значение null. Таким образом, у вас есть резервная копия.

  • 0
    Есть ли способ определить, отключен ли этот конкретный объект, например, GPS_LOCATION (через «Настройки»> «Местоположение и безопасность»)?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню