Obtener una ubicación aproximada

Para respetar la privacidad del usuario, se recomienda a los desarrolladores de aplicaciones que solo soliciten permisos de ubicación aproximados. Las aplicaciones que necesitan una posición aproximada generalmente usan 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 la red en aplicaciones automotrices puede ser más desafiante. Puede utilizar dos API de Android:

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

En su lugar, puede optar por solicitar y utilizar explícitamente NETWORK_PROVIDER en LM, así como GPS_PROVIDER para posiciones precisas, que utiliza los permisos android.permission.ACCESS_FINE_LOCATION . En API 31, FUSED_PROVIDER , al que anteriormente solo se podía acceder a través de la API de GPS, ahora está disponible como proveedor de ubicación para LM. Puede 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 marco degrada artificialmente la precisión para alinearse con las expectativas, tiene poco sentido para los desarrolladores que apuntan a teléfonos Android porque la disponibilidad general es pobre y, a menudo, más lenta para obtener una posición aproximada.

Ubicación de red en automoción.

El NETWORK_PROVIDER usado en teléfonos Android (con Google Mobile Services) ha cambiado de determinar la ubicación basándose únicamente en torres de telefonía celular cercanas a usar también puntos de acceso Wi-Fi o incluso balizas Bluetooth (BT). El uso de NETWORK_PROVIDER puede requerir una conexión de datos.

Para las aplicaciones automotrices, las restricciones del dispositivo difieren. Debido a que GNSS está normalmente activado, no se incurre en 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 el intercambio de datos con nuestros servidores.

Por lo tanto, muchas aplicaciones usan FLP de Play API en lugar de LM directamente, ya que FLP automáticamente hace lo inteligente al usar el proveedor de ubicación que mejor puede satisfacer los criterios/políticas de solicitud de ubicación (es decir, potencia y precisión) bajo el capó.

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 bajo el capó la mayor parte del tiempo.

Proveedor de ubicación de red

La mayoría de los vehículos no implementan las API de telefonía necesarias para obtener la información necesaria sobre el ID de una 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 PNL.

Proveedor de ubicación fusionada

El FLP móvil, además de utilizar de forma inteligente los proveedores de red y GPS según corresponda, fusiona información de otros sensores para mejorar aún más la calidad de las ubicaciones. Por otro lado, la implementación actual del FLP de Automotive aprovecha los supuestos antes mencionados y utiliza GPS_PROVIDER como fuente subyacente todo el tiempo. Modifica las posiciones de GNSS, agregando algunos errores para que sean más inexactos cuando sea necesario. Por ejemplo, cuando se proporcionan ubicaciones aproximadas a un cliente.

Como tal, en muy pocos casos puede pasar más tiempo del habitual hasta que la primera posición esté disponible. Por ejemplo, la primera vez que se utiliza un vehículo o, más concretamente, su subsistema de localización o después de ser remolcado.

Diseñar aplicaciones para usos móviles y automotrices.

Recomendamos que las aplicaciones dirigidas a dispositivos móviles y automotrices que no requieren una mayor calidad de precisión soliciten android.permission.ACCESS_COARSE_LOCATION únicamente y recurran a FLP cuando esté disponible. Alternativamente, como último recurso, utilice GPS_PROVIDER directamente con los mismos permisos. El marco degrada la precisión de la posición GNSS subyacente para alinearse con las expectativas de la API. Para obtener más información, consulte Precisión .

Además, estas aplicaciones deben declarar explícitamente que la función android.hardware.location.network es 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 en todos los sectores verticales y, por lo tanto, la máxima disponibilidad de aplicaciones sin diferencias de código para obtener posiciones cuando sea necesario.