Чтобы уважать конфиденциальность пользователей, разработчикам приложений рекомендуется запрашивать только разрешения на приблизительное местоположение. Приложения, которым требуется приблизительное приблизительное местоположение, обычно используют сетевое местоположение (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" />
Такой подход обеспечивает максимальную совместимость с устройствами разных вертикалей и, следовательно, максимальную доступность приложения без каких-либо различий в коде для получения позиций при необходимости.