Analizar datos NMEA en Android 2.3
Estoy tratando de obtener datos de un dispositivo gps bluetooth conectado a mi tableta Android 2.3. Por el momento puedo emparejarlo usando la pila del bluetooth de Androide y leer del dispositivo serial que se ha creado. Ahora tengo un montón de datos NMEA procedentes de los gps … He intentado integrar un pequeño pedazo de código java para analizar estas cadenas, pero me gustaría saber si hay algo similar ya está disponible en el marco de Android . Todo lo que necesito saber es latitute / longitud y dirección de la brújula. ¡Gracias!
- Lista de todos los nombres de calles y calles en Google en API
- Seguimiento GPS eficiente en energía
- ¿Cómo utilizar mejor los datos GPS?
- Android GPS retrasa al enviar a la base de datos
- No se puede resolver el símbolo ACCESS_FINE_LOCATION
- Android - No se puede obtener la ubicación del GPS en el emulador
- ¿Cómo activar el receptor de difusión cuando gps está encendido / apagado?
- Agregar distancia a una coordenada GPS
- Android MapView: ajusta el zoom automáticamente hasta que se visualicen todas las opciones de ItemizedOverlay
- Desactivar GPS mediante programación
- saltando la ubicación en google maps por gps. (distancia imprecisa)
- El permiso ACCESS_COARSE_LOCATION da una precisión de torre celular en Android
- Android - Fused Location Provider Problemas de API con información de satélite (cuenta, señal, etc.)
No estoy seguro de si algo existe, en cualquier caso, si sólo desea la posición que probablemente sólo tiene que analizar las frases RMC, consulte http://www.gpsinformation.org/dale/nmea.htm#RMC
Un ejemplo simple de código Java para hacer eso:
final String sentence = "$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A"; if (sentence.startsWith("$GPRMC")) { String[] strValues = sentence.split(","); double latitude = Double.parseDouble(strValues[3])*.01; if (strValues[4].charAt(0) == 'S') { latitude = -latitude; } double longitude = Double.parseDouble(strValues[5])*.01; if (strValues[6].charAt(0) == 'W') { longitude = -longitude; } double course = Double.parseDouble(strValues[8]); System.out.println("latitude="+latitude+" ; longitude="+longitude+" ; course = "+course); }
Relacionada: Analizar la salida del receptor GPS vía regex en Python
- ¿Cuáles son los rangos de bandas que ofrece Android en la clase Equalizer?
- Iniciar sesión en el sitio web