Obtención de coordenadas GPS más rápido mediante programación sin Internet, pero utilizando el proveedor de red y GPS móvil

He referido muchas preguntas sobre este tema, pero parece que faltan algunos de mis requisitos:

  1. Quiero obtener la ubicación GPS en ~0.0001 precisión
  2. No quiero usar internet; Aunque la red GSM / CDMA está bien
  3. Se debe obtener mediante programación cuando se inicia la aplicación
  4. Debe ser más rápido, digamos en un minuto (como el iPhone, que probablemente funciona en modo de avión también!)
  5. El código debería funcionar en la mayoría de los dispositivos
  6. El teléfono puede encenderse / apagarse en cualquier momento y viajar a cualquier distancia

¿Hay alguna manera de obtener sólo las coordenadas con los requisitos mencionados anteriormente? Cualquier fragmento de código de ejemplo será muy apreciado.

Comprobar varias aplicaciones como "Locate Me", "Maverick", que pretenden mostrar ubicaciones sin conexión. Pero en varios escenarios sin internet, no dan seguimiento a la ubicación (en la India).
He referido un montón de viejas / nuevas preguntas dentro / fuera de SO. A continuación se presentan algunos:

  • ¿Es posible tener la ubicación del GPS sin conexión con el nexo 7?
  • ¿El GPS requiere Internet?
  • ¿Cómo obtener la ubicación exacta actual en android sin conexión a Internet?

[Nota: Estoy haciendo esta pregunta en nombre de mi equipo de Android y estará encantado de aclarar los detalles si se le solicita. Si crees que este post pertenece a Android.Stackexchange, entonces muévelo.]

1. Quiero conseguir la localización del GPS en ~ 0,0001 exactitud

Puede escuchar sólo al proveedor de GPS y descartar una ubicación cuando no tiene la mínima precisión que desea:

 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 5, myLocationListener); // "myLocationListener" must be an object from a class that implements LocationListener // "myLocationListener" implementation of LocationListener.onLocationChanged public void onLocationChanged(Location location) { int MIN_ACCURACY = 5; // in metters if ((!location.hasAccuracy()) || (location.getAccuracy() > MIN_ACCURACY)) { // discard this location and keep listening to new location readings } else { // that's a good reading! // do somethings you want... blah, blah, blah... // stop updates when you get the location to preserve users' battery. locationManager.removeUpdates(myLocationListener); } } 

2. No quiero usar Internet; Aunque la red GSM / CDMA está bien

Sí, el GPS funciona totalmente fuera de línea. Android solo puede utilizar Internet para actualizar la caché de datos de A-GPS y ofrecer lecturas más rápidas en las actualizaciones de inicio en frío.


3. Debe ser obtenido mediante programación cuando se inicia la aplicación

A continuación, llame al elemento locationManager.requestLocationUpdates en el evento onCreate de mainActivity.


4. Debe ser más rápido, digamos dentro de un minuto (como el iPhone, que probablemente funciona en modo de avión también!)

Tenga en cuenta que el iPhone funciona con "hardware de alta calidad". Android se puede ejecutar en dispositivos de mierda. Así que dependerá de:

  • La calidad del hardware del dispositivo;
  • El número de satélites que son visibles en el cielo en ese momento;
  • La edad de los datos de almanaque y efemérides en caché de gps;
  • GPS puede fallar al leer satélites porque el usuario está dentro de un edificio o algo así.

5. El código debería funcionar en la mayoría de los dispositivos

¿Cuál es la API de Android más antigua que quieres que funcione?


6. El teléfono puede encenderse / apagarse en cualquier momento y viajar a cualquier distancia

No lo entendí. ¿Cuál es su preocupación por esto?

————————————————– Unesdoc.unesco.org unesdoc.unesco.org

Actualización 1:

"… Me gustaría usar Android 4.0 y superior …"

He probado las funciones GPS de los dispositivos Android 2.3 a 5.0. Todo funciona bastante bien en todos ellos.

"… he observado que 1 geo-coordenadas basada en la aplicación de demostración que estaba trabajando en otros dispositivos, din't trabajo en mi LGG3 con Android 5.0. ¿Alguna idea en eso? …"

¿Comprobó los permisos de GPS en la configuración de Android? (Tal vez está deshabilitado) ¿O puede ser un problema de hardware? ¿Intentaste otro dispositivo similar?

"… Supongamos que el GPS está mostrando la ubicación correcta en Nueva York, apago el teléfono y luego enciende después de llegar a Londres, entonces seguirá mostrando la ubicación correcta (sin Internet)? …"

Suena que estás confundiendo cosas: leer una ubicación GPS es una cosa. Mostrar que la ubicación en un MAP es otra cosa diferente!

Usted no necesita estar conectado a Internet para hacer la lectura de la ubicación GPS. Pero, si quieres mostrar esa ubicación en un MAP, probablemente vas a necesitar internet (para cargar mapas de recursos, etc.).

Si desea continuar recolectando ubicaciones GPS periódicamente (digamos, de 10 a 10 minutos), entonces será mejor usar AlarmManager para programar un temporizador que "toque" su aplicación y diga "hey, es hora de hacer una lectura GPS ! ".

"… ¿Cuál es tu opinión sobre la última API de Fusion? …"

Lo he probado y lo he usado durante un tiempo, pero lo dejé. Necesita que Google Play Services se instale para funcionar (no es un problema, la mayoría de los usuarios lo tienen en sus dispositivos). Pero si usted necesita EXACTITUD (como yo), no funcionará. Utiliza "sensores fundidos" (acelerómetro, gps, wifi, brújula, etc …) para intentar conseguir la ubicación del usuario con la potencia mínima posible. A veces, dice que estás a 10 millas de donde realmente estás. No pude hacer que funcione bien para mantener la "ruta" donde el usuario ha estado. Pero realmente ahorra batería.

Sugerencia es usar los Servicios de ubicación de Google. Se necesita la ubicación más exacta y precisa posible con la mayor precisión posible en el momento actual. Es automáticamente (con la configuración de curso) toma la mejor exactitud actual demasiado – lo que está disponible GPS, red, Internet, GSM / CDMA / LTE … También se cobra la última ubicación conocida por lo que, básicamente, usted lo sabe cada momento – usted puede.

Por supuesto, usted tiene que darse cuenta de que cada servicio ofrece su propia precisión y en su propio tiempo. Mira, por ejemplo, GPS Test App en Android y ver cómo aumenta la precisión con el tiempo y los satélites utilizados.

También servicios de ubicación es bueno para usted, ya que simplemente proporciona coordenadas – al igual que usted pidió y se esconde un montón de trabajo para determinar qué servicio real para usar en función del tiempo y la precisión. Sin embargo, por supuesto, si ninguno de los servicios en su dispositivo particular y ubicación le puede dar la precisión necesaria, entonces no hay manera de obtenerlo. Es por eso que los servicios también proporcionan medición de exactitud.

Aquí hay otro enlace

Utilice la API de ubicación fusionada proporcionada por SDK de Android. Implemente la ubicación fusionada en un servicio y llámela en la aplicación MainActivity.

  • Android GPS obtener la ubicación actual
  • Posicionamiento egnos en un dispositivo android
  • GpsStatus.Listener sólo funciona si el GPS está activado
  • Desactivar GPS mediante programación
  • El emulador de Android no puede reconocer que el GPS está habilitado
  • Cómo obtener el nombre de la ciudad por latitud y longitud en android?
  • ¿Cómo puedo comprobar si el GPS está habilitado antes de intentarlo?
  • Tiempo de espera de Android GPS
  • ¿El GPS requiere Internet?
  • Simular la ubicación falsa en el dispositivo Android vía DDMS
  • ¿Utilizar el teléfono Android como ARM dev board?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.