Contrato de ubicación de Driver App
La ubicación de Driver App no es una sola capacidad. Incluye recopilación del dispositivo, lecturas de un solo uso, seguimientos, líneas de ruta en memoria, presentación en mapas, publicación en primer plano, publicación del proveedor en segundo plano, ubicación incluida en estado, almacenamiento/emisión/historial del servidor, validación, política de simulación y retención.
Cada vía tiene permisos, validaciones y efectos de servidor independientes. Una comprobación correcta del cliente no confirma que la ubicación sea reciente o confiable, ni que el servidor la haya guardado, emitido, compartido o retenido.
Disponibilidad
El trabajo de ubicación depende de permisos efectivos de plataforma, identidad autenticada, configuración de proyecto/estado, ciclo de vida, disponibilidad del usuario, montaje de mapa/detalle, disponibilidad del proveedor y conectividad. Varios componentes inician una lectura única o seguimiento al montarse, antes de que Driver pulse un control de ubicación o estado.
Requisitos previos
- Aprobación del propósito de producto/privacidad y de recopilación mínima para cada vía.
- Revisión de permisos efectivos y ciclo de vida en iOS/Android.
- Generación actual de cuenta/sesión y autorización de solicitudes.
- Origen, marca temporal, precisión y procedencia de simulación explícitos para las coordenadas.
- Política del servidor de normalización, vigencia, simulación, almacenamiento, emisión de disponibilidad, uso compartido con cliente, historial de pedido y retención.
- Limpieza determinista de seguimientos/listeners/proveedores y cero registros sensibles.
Límites de responsabilidad
| Vía | Responsabilidad del cliente | Límite |
|---|---|---|
| Lectura única | Pedir al proveedor del dispositivo la posición actual de alta precisión, con entradas de tiempo de espera/caché. | La coordenada/marca temporal/simulación devuelta no es inherentemente confiable. |
| Seguimiento en primer plano | Iniciar/detener el seguimiento de posición y actualizar el estado local actual/de ruta. | Varios inicios pueden sobrescribir un ID de seguimiento y dejar activo uno anterior. |
| Montaje del mapa | Leer/seguir ubicación y publicar actualizaciones de coordenadas distintas de cero mediante el SDK del cliente. | El montaje/enfoque produce efectos; la forma de guardado no incluye metadatos de vigencia/simulación. |
| Detalle/formulario de entrega | Iniciar seguimiento, validar estados seleccionados y opcionalmente incluir ubicación en la solicitud de estado. | La validación del cliente no es confianza del servidor ni aceptación de estado. |
| Actualización directa de Root | Leer la ubicación del dispositivo y publicar con el contexto Driver autenticado. | AppState/callbacks de toque/proveedor pueden activarla. |
| Proveedor de segundo plano | Configurar/iniciar/detener seguimiento y callbacks HTTP según el estado de permiso/token/usuario/idioma. | Configuración/inicio/callback/limpieza son etapas distintas y la limpieza está bloqueada actualmente. |
| API | Autorizar/normalizar/comprobar simulación/guardar/emitir/historial según la vía/configuración. | Las reglas y efectos pueden variar según el endpoint y la configuración. |
Entradas y resultados
| Entrada/estado | Resultado posible | Límite crítico |
|---|---|---|
| Coordenadas del dispositivo | Latitud/longitud/velocidad simulada locales y, a veces, marca temporal | Root y los hooks de UI generan distintos formatos de marca temporal. |
| Evento de seguimiento | Actualizar la ubicación actual y añadir una línea de ruta en memoria | No se demuestra la precisión/procedencia/retención ni la limpieza de seguimientos duplicados. |
| Actualización de ubicación del mapa | Guardado en SDK con objeto de coordenadas | Este guardado no incluye marca temporal ni metadatos de simulación. |
| Publicación directa/en segundo plano | Solicitud autenticada de ubicación o HTTP del proveedor | Almacenamiento/emisión/historial y comprobación de simulación/vigencia varían según la ruta del servidor. |
| Ubicación de estado | Ubicación incluida con el estado destino | Puede omitir comprobaciones separadas de marca temporal/simulación; el fallo del historial no tiene que cancelar el estado. |
| Validación del cliente | Problemas de dato ausente/obsoleto/destino/distancia o validación local correcta | La validación local no decide si la precisión, simulación o ubicación son confiables para el servidor. |
| Respuesta no autorizada del proveedor | Intención de cierre de sesión local | La limpieza de sesión/proveedor/API es parcial. |
Seguridad y privacidad
- No incluyas coordenadas precisas, líneas de ruta, respuestas HTTP/de proveedor sin procesar, tokens, direcciones ni datos de cuenta/pedido en registros compartidos o informes públicos.
- Trata por separado y con aprobación la recopilación, almacenamiento actual/anterior, emisión de disponibilidad, uso compartido con clientes, efectos de pedido, historial y retención.
- Rechaza marcas temporales obsoletas/desconocidas, precisión insuficiente y ubicaciones simuladas no confiables antes de usar las coordenadas para una decisión.
- Vincula seguimientos/callbacks/resultados tardíos a la cuenta y ciclo de vida de pantalla actuales.
- Un simulador no es hermético y la ubicación simulada no es segura automáticamente.
Límites y estados de fallo
| Estado | Significado | Respuesta de mantenimiento |
|---|---|---|
| Permiso ausente/denegado | El cliente/proveedor no puede usar la vía prevista. | No eludas el control; usa el contrato de permisos. |
| Coordenada cero/ausente | Normalización del hook o ningún resultado utilizable. | No publiques ni deduzcas la ubicación. |
| Marca temporal ausente | Algunos hooks/rutas de guardado no la incluyen. | No la llames reciente. |
| Indicador de simulación | Algunas rutas de dispositivo/proveedor lo reciben. | La validación del cliente no lo rechaza; se requiere política del servidor. |
| Se inició seguimiento sin estar enfocado | El efecto de montaje del mapa puede iniciarlo antes del enfoque. | Corrige/prueba la propiedad y la limpieza. |
| Varios seguimientos iniciados | Se puede sobrescribir el único ID guardado. | Demuestra que se cancelan todos los seguimientos. |
| El estado tiene éxito, pero falla el historial | Efecto parcial C08. | Nunca equipares la escritura principal al historial durable. |
| HTTP del proveedor no autorizado | Intención de cierre de sesión local. | Concilia limpieza de ubicación/sesión/proveedor. |
Diagnóstico
| Síntoma | Inspeccionar | Diagnóstico seguro |
|---|---|---|
| Se actualiza la ubicación antes de enfocar el mapa | Efectos de montaje/enfoque y recuento de seguimientos | Usa solo el registro interceptado del proveedor/listener. |
| Actualizaciones duplicadas | Varias llamadas de seguimiento, ID guardado y limpieza | Cuenta altas/bajas de seguimiento sintéticas. |
| El cliente dice que es válida, pero la ubicación es dudosa | Marca temporal, precisión, procedencia de simulación, destino y política del servidor | Detente antes de cambiar el estado/publicar. |
| Difieren la ubicación del mapa y la de segundo plano | Formatos de hooks, caché/tiempo de espera, proveedor, ciclo de vida y vía de publicación | No concilies usando coordenadas reales. |
| Cambió el estado sin el historial esperado | C05/C08 principal frente a acciones posteriores de historial/almacenamiento/emisión | Escala a quien sea responsable de API/seguridad; no repitas. |
Vuelve a revisar cuando cambien permisos, formato de resultado del hook, marca temporal/simulación/precisión, limpieza del seguimiento/enfoque, guardado de mapa, validación de estado, publicación Root/en segundo plano, almacenamiento/emisión/historial del servidor o retención.
Guías relacionadas: Permisos de ubicación · Validación de ubicación · Mapa de entregas · Ejecución en segundo plano · Contrato de mapas