Получить грубое местоположение

В целях соблюдения конфиденциальности пользователей разработчикам приложений рекомендуется запрашивать только грубые разрешения на определение местоположения. Приложения, которым требуется приблизительное приблизительное местоположение, обычно используют сетевое местоположение (FLP), поскольку оно быстрое и потребляет меньше энергии.

По сравнению с мобильными устройствами на базе Android определение местоположения в автомобильных приложениях может оказаться более сложной задачей. Вы можете использовать два API Android:

  • API LocationManager требует, чтобы вы явно указали предпочтительного поставщика местоположений.

  • API сервисов Google Play предлагает более упрощенный способ работы с местоположением благодаря внедрению Fused Location Provider (FLP).

Многие автомобильные приложения используют FLP из API сервисов Google Play (GPS) вместо LM. FLP выбирает оптимального поставщика местоположения на основе критериев запроса местоположения и политик (мощность и точность), необходимых для транспортного средства.

Вместо этого вы можете явно запросить и использовать NETWORK_PROVIDER в LM, а также GPS_PROVIDER для точных позиций, который использует разрешения android.permission.ACCESS_FINE_LOCATION . В API 31 FUSED_PROVIDER , ранее доступный только через API GPS, теперь доступен в качестве поставщика местоположения для LM. Вы можете просмотреть более простую реализацию FLP в FusedLocationProvider.java .

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

Расположение сети в автомобилестроении

NETWORK_PROVIDER используемый на телефонах Android (с Google Mobile Services), изменился с определения местоположения исключительно на основе близлежащих вышек сотовой связи, теперь он также использует точки доступа Wi-Fi или даже маяки Bluetooth (BT). Для использования NETWORK_PROVIDER может потребоваться подключение для передачи данных.

Для автомобильных приложений ограничения устройств различаются. Поскольку GNSS обычно включена, никаких штрафов из-за увеличения мощности и использования батареи не возникает. В результате время безотказной работы IVI не ухудшается. Мы стремимся свести к минимуму обмен данными с нашими серверами.

Поэтому многие приложения используют FLP из Play API вместо LM напрямую, поскольку FLP автоматически делает разумные вещи, используя поставщика местоположения, который лучше всего может удовлетворить критерии/политики запроса местоположения (а именно мощность и точность) под капотом.

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

Поставщик сетевого местоположения

В большинстве транспортных средств не реализованы необходимые API-интерфейсы телефонии для получения необходимой информации об идентификаторе ячейки (и уровне сигнала). В результате, а также поскольку мы минимизируем использование данных, дополнительная функциональная реализация NLP не предоставляется.

Поставщик объединенного местоположения

Мобильный FLP, помимо разумного использования сетевых и GPS-провайдеров по мере необходимости, объединяет информацию от других датчиков для дальнейшего повышения качества местоположений. С другой стороны, текущая реализация FLP компании Automotive использует преимущества вышеупомянутых предположений и постоянно использует GPS_PROVIDER в качестве основного источника. Он искажает координаты GNSS, добавляя некоторые ошибки, чтобы при необходимости сделать их более неточными. Например, когда клиенту предоставляются грубые местоположения.

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

Создавайте приложения для мобильных устройств и автомобилей

Мы рекомендуем, чтобы приложения, предназначенные для мобильных и автомобильных устройств, которым не требуется более высокое качество точности, запрашивали только android.permission.ACCESS_COARSE_LOCATION и возвращались к использованию FLP, когда он доступен. Альтернативно, в крайнем случае, используйте GPS_PROVIDER напрямую с теми же разрешениями. Платформа снижает точность базовой позиции GNSS, чтобы соответствовать ожиданиям API. Чтобы узнать больше, см. Точность .

Кроме того, эти приложения должны явно объявить функцию android.hardware.location.network необязательной в своем манифесте. Например:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

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