Cómo conocer la ubicación aproximada

Para respetar la privacidad del usuario, se recomienda que los desarrolladores de apps solo soliciten permisos de ubicación aproximada. Las apps que necesitan una posición aproximada y aproximada suelen usar la ubicación de red (FLP) porque es rápida y consume menos energía.

En comparación con los dispositivos móviles basados en Android, la ubicación de red en las apps para vehículos puede ser más desafiante. Puedes usar dos APIs de Android:

  • La API de LocationManager requiere que identifiques de forma explícita el proveedor de ubicación preferido.

  • La API de Servicios de Google Play ofrece una forma más simplificada de trabajar con la ubicación con la introducción del proveedor de ubicación combinada (FLP).

Muchas apps para vehículos usan FLP de la API de los Servicios de Google Play (GPS) en lugar de LM. El FLP selecciona el proveedor de ubicación óptimo según los criterios y las políticas de solicitud de ubicación (potencia y precisión) que necesita el vehículo.

En su lugar, puedes solicitar y usar NETWORK_PROVIDER de forma explícita en LM, así como GPS_PROVIDER para posiciones precisas, que usa permisos android.permission.ACCESS_FINE_LOCATION. En el nivel de API 31, FUSED_PROVIDER, al que antes solo se podía acceder a través de la API de GPS, ahora está disponible como proveedor de ubicación para LM. Puedes ver una implementación más simple de FLP en FusedLocationProvider.java.

Si bien es posible usar GPS_PROVIDER solo con derechos de permiso aproximados, el framework degrada artificialmente la precisión para alinearse con las expectativas, por lo que no tiene mucho sentido para los desarrolladores que se orientan a teléfonos Android, ya que la disponibilidad general es deficiente y, a menudo, es más lento obtener una posición aproximada.

Ubicación de la red en la industria automotriz

El NETWORK_PROVIDER que se usa en teléfonos Android (con los Servicios de Google para dispositivos móviles) cambió de determinar la ubicación solo en función de las torres de telefonía celular cercanas para usar también puntos de acceso Wi-Fi o incluso balizas Bluetooth (BT). Es posible que el uso de NETWORK_PROVIDER requiera una conexión de datos.

En el caso de las apps para vehículos, las restricciones de los dispositivos difieren. Como el GNSS suele estar activado, no se aplican penalizaciones debido al aumento del uso de energía y batería. Como resultado, el tiempo de actividad de IVI no se ve comprometido. Nos esforzamos por minimizar los datos que se intercambian con nuestros servidores.

Por lo tanto, muchas apps usan FLP desde la API de Play en lugar de LM directamente, ya que FLP hace lo inteligente automáticamente con el proveedor de ubicación que mejor puede satisfacer los criterios o las políticas de solicitud de ubicación (es decir, la potencia y la precisión) en segundo plano.

A diferencia de los dispositivos móviles, los vehículos rara vez parecen saltar de un lugar a otro. La posición del vehículo se conoce debajo del capó la mayor parte del tiempo.

Proveedor de ubicación de red

La mayoría de los vehículos no implementan las APIs de telefonía necesarias para obtener la información necesaria sobre un ID de celda (y la intensidad de la señal). Como resultado, y debido a que minimizamos el uso de datos, no se proporciona ninguna implementación funcional adicional de la NLP.

Proveedor de ubicación combinada

La FLP para dispositivos móviles, además de usar de forma inteligente los proveedores de red y GPS según corresponda, combina información de otros sensores para mejorar aún más la calidad de las ubicaciones. Por otro lado, la implementación actual de FLP de Automotive aprovecha las suposiciones mencionadas anteriormente y usa GPS_PROVIDER como fuente subyacente todo el tiempo. Falsifica las posiciones del GNSS y agrega algunos errores para que sean más imprecisos cuando sea necesario. Por ejemplo, cuando se proporcionan ubicaciones aproximadas a un cliente.

Por lo tanto, en algunos casos, es posible que la primera posición esté disponible más tiempo de lo habitual. Por ejemplo, la primera vez que se usa un vehículo o, para ser más precisos, su subsistema de ubicación, o después de que se remolca.

Diseña apps para segmentar anuncios para usos de dispositivos móviles y la industria automotriz

Recomendamos que las apps orientadas a dispositivos móviles y automotrices que no requieran una solicitud de precisión de mayor calidad usen android.permission.ACCESS_COARSE_LOCATION solo y recurran al uso de FLP cuando esté disponible. Como último recurso, usa GPS_PROVIDER directamente con los mismos permisos. El framework degrada la precisión de la posición GNSS subyacente para alinearse con las expectativas de la API. Para obtener más información, consulta Precisión.

Además, estas apps deben declarar de forma explícita la función android.hardware.location.network como opcional en su manifiesto. Por ejemplo:

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

Este enfoque garantiza la máxima compatibilidad con dispositivos de diferentes verticales y, por lo tanto, la máxima disponibilidad de la app sin diferencias de código para obtener posiciones cuando sea necesario.