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

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

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

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

  • API сервисов Google Play предлагает более простой способ работы с местоположением благодаря внедрению поставщика объединённых данных о местоположении (FLP).

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

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

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

Расположение сети в автомобильной промышленности

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

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

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

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

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

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

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

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

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

Разработка приложений, ориентированных на мобильные устройства и автомобили

Мы рекомендуем, чтобы приложения, ориентированные на мобильные и автомобильные устройства, которым не требуется более высокое качество точности, запрашивали только android.permission.ACCESS_COARSE_LOCATION и прибегали к использованию FLP, когда это возможно. В качестве альтернативы, в качестве последнего средства, используйте GPS_PROVIDER напрямую с теми же разрешениями. Фреймворк снижает точность базовой позиции GNSS для соответствия ожиданиям API. Чтобы узнать больше, см. Accuracy .

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

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

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