2013-08-05 2 views
1

У меня есть сомнение в выборе алгоритма метода getBestProvider с использованием определенных критериев.Критерии Класс - местоположение Android - Почему выбран провайдер GPS?

Когда точность для подшипника и скорости установлена ​​на среднюю, высокую или низкую; Поставщик GPS выбирается по умолчанию в качестве лучшего поставщика для критериев, который хорош, поскольку сетевой провайдер не имеет никакой информации, относящейся к этим параметрам.

Однако, даже если я задаю точность или точность точности подшипников, не позволяя им (установив поле с включенным параметром в true); всегда провайдер GPS называется eventhough, но подшипник или скорость wuld возвращаются как 0, так как не включены.

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

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

Краткое описание: criteriaobject.setBearingRequired (true);

criteriaobject.setBearingAccuracy (Criteria.LOW_ACCURACY);

locationmanagerobject.getBestProvider (критерии, true); // Возвращает GPS, который является штраф

Однако;

criteriaobject.setBearingAccuracy (Criteria.LOW_ACCURACY);

locationmanagerobject.getBestProvider (критерии, true); // Опять возвращает GPS, который не имеет смысла, поскольку подшипник не включен, возвращенное местоположение не будет иметь никакого отношения, поэтому NETWORK кажется лучшим вариантом, но это не так, как это работает.

Любые идеи или логические аргументы для этого? Или это может повлиять на срок службы батареи из-за такой реализации?

ответ

0

Google Play Services упрощает разработку разработчиками приложений на основе местоположения. Так же, как CoreLocation делает в iOS, есть один провайдер местоположения, чем заботится обо всех ваших потребностях, нет необходимости выбирать между GPS или другим ... см http://developer.android.com/reference/com/google/android/gms/location/package-summary.html

+0

Thanks; Но я не планирую использовать службы Google; В любом случае, информация была довольно скучной. Также не могли бы вы рассказать о различии между точностью и горизонтальной точностью в LocationPackage. – Rob

+0

Согласно документации, setHorizontalAccuracy() (уровень API 9+) является более совершенным setAccuracy() (уровень API 1+) с другим набором константы. Оба только контролируют горизонтальный уровень точности требования. Я должен признать, что я не тестировал два метода сравнительно ... –

0

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

Поскольку у вас нет ничего в Criteria, который будет управлять алгоритмом выбора в направлении использования сетевого провайдера.

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

Если вас интересует сила, use setPowerRequirement() on Criteria.

+0

Thanks; Я знаю об этих параметрах, но я просто хотел, чтобы с этими двумя параметрами были использованы только те два параметра, которые не повлияли бы на то, что будет влиять. В любом случае вы могли бы также уточнить разницу между точностью и горизонтальной точностью в LocationPackage – Rob

+0

@Rob, согласно [source] (https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master /location/java/android/location/Criteria.java), они одинаковы. Выполнение 'setAccuracy()' устанавливает горизонтальную точность. Затем в API 9 они добавили ['setVerticalAccuracy()'] (http://developer.android.com/reference/android/location/Criteria.html#setVerticalAccuracy (int)) и хотели легче различать между ними. – Anonsage

0

Вы должны установить точности подшипника =>NO_REQUIREMENT, то вы получите сеть как лучший поставщик

Устанавливая точности подшипника =>ACCURACY_LOW вместо ACCURACY_HIGH будет скорость до время установления местоположения

Смежные вопросы