¿Es posible obtener la ubicación actual del usuario sin usar GPS o Internet? Me refiero a la ayuda del proveedor de red móvil.
android
geolocation
gps
android-gps
Prabhu M
fuente
fuente
Respuestas:
Lo que busca hacer es obtener la posición usando el en
LocationManager.NETWORK_PROVIDER
lugar deLocationManager.GPS_PROVIDER
. ElNETWORK_PROVIDER
se resolverá en GSM o wifi, lo que esté disponible. Obviamente, con wifi desactivado, se utilizará GSM. Tenga en cuenta que el uso de la red celular tiene una precisión de 500 m.http://developer.android.com/guide/topics/location/obtaining-user-location.html tiene muy buena información y código de muestra.
Una vez que haya terminado con la mayor parte del código
OnCreate()
, agregue esto:También puede hacer que su actividad implemente la
LocationListener
clase y así implementarlaonLocationChanged()
en su actividad.fuente
Al obtener el
getLastKnownLocation
, no inicia una solución usted mismo.Tenga en cuenta que esto podría iniciar el proveedor, pero si el usuario alguna vez obtuvo una ubicación antes, no creo que lo haga. Los documentos no son demasiado claros al respecto.
De acuerdo con los documentos getLastKnownLocation:
Aquí hay un fragmento rápido:
También debe agregar un nuevo permiso para
AndroidManifest.xml
fuente
PASSIVE_PROVIDER
,NETWORK_PROVIDER
yGPS_PROVIDER
.fuente
No, actualmente no puede obtener la ubicación sin usar GPS o Internet.
Las técnicas de localización basadas en WiFi, Celular o Bluetooth funcionan con la ayuda de una gran base de datos que se actualiza constantemente. Un dispositivo busca los ID de los transmisores y luego los envía en una consulta a través de Internet a un servicio como Google, Apple o Skyhook. Ese servicio responde con una ubicación basada en encuestas inalámbricas anteriores de ubicaciones conocidas. Sin acceso a Internet, debe tener una copia local de dicha base de datos y mantenerla actualizada. Para el uso global, esto es muy poco práctico.
Teóricamente, un proveedor de telefonía móvil podría proporcionar servicios de datos locales únicamente, pero sin acceso a Internet, y luego responder consultas de ubicación desde dispositivos móviles. Los proveedores móviles no hacen esto; nadie quiere pagar por este tipo de acceso restringido a los datos. Si tiene servicio de datos a través de su proveedor de telefonía móvil, entonces tiene acceso a Internet.
En resumen, el uso de LocationManager.NETWORK_PROVIDER o android.hardware.location.network para obtener la ubicación requiere el uso de Internet.
El uso de la última posición conocida requiere que haya tenido acceso a Internet o GPS recientemente. Si acaba de tener Internet, presumiblemente puede ajustar su posición o configuración para volver a tener Internet. Si su dispositivo no ha tenido GPS o acceso a Internet, la última función de posición conocida no le ayudará.
Sin GPS o Internet, podría:
fuente
Aquí es posible obtener la ubicación actual del usuario sin el uso de GPS y proveedor de red.
1.
Convert cellLocation to real location (Latitude and Longitude), using "http://www.google.com/glm/mmap"
2. Haga clic aquí para su referencia
fuente
¿Has echado un vistazo a la API de geolocalización de Google Maps? Geolocalización de Google Map
Esto es RestApi simple, solo necesita POST una solicitud, el servicio devolverá una ubicación con precisión en metros.
fuente
Parece que es posible rastrear un teléfono inteligente sin usar GPS.
Fuentes:
Principal: "PinMe: seguimiento de un usuario de smartphone en todo el mundo"
Secundaria: "Cómo rastrear un teléfono celular sin GPS o consentimiento"
Todavía no he encontrado un enlace al código final del equipo. Cuando lo haga, lo publicaré, si otro no lo ha hecho.
fuente
Puede usar TelephonyManager para hacer eso.
fuente