work - gps stuck on android
obteniendo la mayor tasa de actualizaciĆ³n de GPS del hardware de GPS en mi Android (1)
Llegué a programar Android desde otras plataformas que utilicé con GPS. en las otras plataformas tuve acceso al GPS HW (tenía un controlador GPS de bajo nivel) y pude obtener actualizaciones de GPS 5 veces por segundo e incluso más. Ahora trabajo con Samsung Galaxy S2 (lo cual es claro para mí su GPS es muy potente y puede suministrar varias actualizaciones por segundo. Actualmente, configuro el proveedor de GPS para que suministre actualizaciones en una distancia mínima y un tiempo mínimo como este:
mlocManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, mlocListener
);
Recibo 1 actualización por segundo (o 800ms como el espacio más pequeño entre dos actualizaciones) que es demasiado bajo para mi aplicación. ¿Hay alguna manera de forzar al GPS HW a reportar más actualizaciones de alguna manera? Supongo que no está expuesto al usuario, pero ¿hay alguna forma de acceder a los registros del GPS HW de alguna manera?
Actualmente no puedes obtener actualizaciones más rápido que una vez por segundo en la mayoría del teléfono. Este es el límite de gps del hardware.
Por lo general, en la mayoría de los teléfonos, es a 1 hz.
Todo depende del hardware y el escenario donde estés usando (Interior, Exterior)
Pero de nuevo, puedes verificar usando
LocationRequest setFastestInterval (long millis)
Esto le permite a su aplicación adquirir pasivamente ubicaciones a un ritmo más rápido de lo que adquiere ubicaciones de forma activa, ahorrando energía.
A diferencia de setInterval (long), este parámetro es exacto. Su aplicación nunca recibirá actualizaciones más rápido que este valor.
Este método establece la tasa más rápida en milisegundos en la que su aplicación puede gestionar actualizaciones de ubicación. Debe establecer esta tasa porque otras aplicaciones también afectan la velocidad a la que se envían las actualizaciones. Los servicios de ubicación envían actualizaciones a la velocidad más rápida que cualquier aplicación solicitada llamando a LocationRequest.setInterval ().
Si esta tasa es más rápida de lo que su aplicación puede manejar, puede encontrar problemas con el parpadeo de la IU o el desbordamiento de datos.