ubicacion simulada seleccionar sale que prueba lite falsear falsa desactivar como bloquear aplicaciones aplicacion activan android testing android-emulator geolocation

simulada - ¿Cómo emular la ubicación del GPS en el emulador de Android?



ubicacion de prueba huawei p8 lite (30)

Asumiendo que tienes una vista de mapa configurada y en funcionamiento:

MapView mapView = (MapView) findViewById(R.id.mapview); final MyLocationOverlay myLocation = new MyLocationOverlay(this, mapView); mapView.getOverlays().add(myLocation); myLocation.enableMyLocation(); myLocation.runOnFirstFix(new Runnable() { public void run() { GeoPoint pt = myLocation.getMyLocation(); } });

Necesitará el siguiente permiso en su manifiesto:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Y para enviar coordenadas simuladas al emulador desde Eclipse, vaya al menú "Ventana", seleccione "Mostrar vista"> "Otro"> "Control del emulador", y puede enviar las coordenadas desde el panel de control del emulador que aparece.

Quiero obtener longitud y latitud en el emulador de Android para probar.

¿Alguien me puede guiar para lograr esto?

¿Cómo configuro la ubicación del emulador en una posición de prueba?



Dalvik Debug Monitor> Seleccionar emulador> pestaña Control de emulador> Controles de ubicación.

DDMS - android_sdk / tools / ddms O android_sdk / tools / monitor


En Linux donde los puertos de comunicación están bloqueados. navegue por el terminal a la carpeta de herramientas de plataforma dentro de android sdk y android sdk este comando:

./adb -s #{device_name} emu geo fix #{longitude} #{latitude}


En Mac, Linux o Cygwin:

echo ''geo fix -99.133333 19.43333 2202'' | nc localhost 5554

Eso te pondrá en la ciudad de México. Cambie su longitud / latitud / altitud en consecuencia. Eso debería ser suficiente si no estás interesado en nmea.


En eclipse:

Puede que tenga que arrastrar la ventana DDMS hacia abajo. ''Controles de ubicación'' se encuentra en ''Acciones de telefonía'' y puede estar oculto por una vista de consola de tamaño normal (la barra con consola, LogCat, etc. puede estar cubriéndola)

~


Escribí un script en Python para enviar ubicaciones gps al emulador a través de telnet. Define una fuente y una ubicación de destino. También hay un desplazamiento de tiempo que le permite controlar cuánto tiempo se empujarán las coordenadas al dispositivo. Una ubicación es empujada una vez por segundo.

En el siguiente ejemplo, el script se mueve de Berlín a Hamburgo en 120 segundos. Ubicación de un paso / gps por segundo con distancias aleatorias.

#!/usr/bin/python # -*- coding: utf-8 -*- import sys import telnetlib from time import sleep import random HOST = "127.0.0.1" PORT = 5554 TIMEOUT = 10 LAT_SRC = 52.5243700 LNG_SRC = 13.4105300 LAT_DST = 53.5753200 LNG_DST = 10.0153400 SECONDS = 120 LAT_MAX_STEP = ((max(LAT_DST, LAT_SRC) - min(LAT_DST, LAT_SRC)) / SECONDS) * 2 LNG_MAX_STEP = ((max(LNG_DST, LNG_SRC) - min(LNG_DST, LNG_SRC)) / SECONDS) * 2 DIRECTION_LAT = 1 if LAT_DST - LAT_SRC > 0 else -1 DIRECTION_LNG = 1 if LNG_DST - LNG_SRC > 0 else -1 lat = LAT_SRC lng = LNG_SRC tn = telnetlib.Telnet(HOST, PORT, TIMEOUT) tn.set_debuglevel(9) tn.read_until("OK", 5) tn.write("geo fix {0} {1}/n".format(LNG_SRC, LAT_SRC)) #tn.write("exit/n") for i in range(SECONDS): lat += round(random.uniform(0, LAT_MAX_STEP), 7) * DIRECTION_LAT lng += round(random.uniform(0, LNG_MAX_STEP), 7) * DIRECTION_LNG #tn.read_until("OK", 5) tn.write("geo fix {0} {1}/n".format(lng, lat)) #tn.write("exit/n") sleep(1) tn.write("geo fix {0} {1}/n".format(LNG_DST, LAT_DST)) tn.write("exit/n") print tn.read_all()


Estaba buscando una mejor manera de configurar las coordenadas GPS del emulador que utilizando la geo fix y determinando manualmente las coordenadas específicas de latitud y longitud.

Incapaz de encontrar algo, armé un pequeño programa que utiliza GWT y la API de Google Maps para iniciar una herramienta de mapas basada en el navegador para configurar la ubicación del GPS en el emulador:

android-gps-emulator

Esperemos que pueda ser útil para ayudar a otros que, sin duda, también se encontrarán con esta dificultad / pregunta.

android-gps-emulator


Estaba tratando de establecer la solución de geo a través de adb para muchos puntos y no pude obtener mi aplicación para ver ningún dato de GPS. Pero cuando intenté abrir DDMS, seleccioné el proceso de mi aplicación y envié las coordenadas a través de la pestaña de control del emulador, funcionó de inmediato.



La respuesta varias veces ya mencionada para usar el comando de shell " geo fix ... " es la respuesta correcta. Pero en caso de que use LocationClient.getLastLocation () para recuperar sus datos, vale la pena mencionar que al principio no funcionará. La clase LocationClient usa el servicio Google Play para recuperar las coordenadas. Para mí, esto comenzó a funcionar después de ejecutar la aplicación de mapas de emuladores una vez. Durante el primer inicio, se le solicita que permita que las aplicaciones de Google accedan a su ubicación, lo que supongo que funciona.


La siguiente solución funcionó para mí: abrir la línea de comandos y escribir:

adb emu geo fix [longtitude] [latitude]


Nadie mencionó aquí la solución incorporada del propio emulador, por lo que para futuros visitantes, me gustaría compartirlo con imágenes.

Primero, ejecute su emulador de Android y haga clic en el botón de menú (3 puntos) que se muestra a continuación:

Luego, desde el panel izquierdo, seleccione Ubicación y cambie las coordenadas de acuerdo con sus necesidades. Después de presionar el botón Enviar , los cambios entrarán en vigencia inmediatamente (te recomiendo que abras Google Maps para una mejor comprensión).

Versión de Android Studio: 2.3.3


No pude obtener una corrección de GPS en el emulador cuando el emulador ejecutaba la imagen de Android sin las API de Google. Tan pronto como cambié la imagen para que contenga las API de Google, todas las formas aquí mencionadas para hacer funcionar una solución GPS.

Asegúrese de seleccionar una imagen con las API de Google al crear AVD.


No puedo comentar aún, por lo que la actualización de @ectomorphs responde aquí, que cuando telnet ahora requiere tener un token de autenticación. En linux, está en /home/username/.emulator_console_auth_token

#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import telnetlib from time import sleep import random FILE = open(''/home/username/.emulator_console_auth_token'', ''r'') AUTH_TOKEN = FILE.read() FILE.close() HOST = "127.0.0.1" PORT = 5554 TIMEOUT = 10 LAT_SRC = 52.5243700 LNG_SRC = 13.4105300 LAT_DST = 53.5753200 LNG_DST = 10.0153400 SECONDS = 120 LAT_MAX_STEP = ((max(LAT_DST, LAT_SRC) - min(LAT_DST, LAT_SRC)) / SECONDS) * 2 LNG_MAX_STEP = ((max(LNG_DST, LNG_SRC) - min(LNG_DST, LNG_SRC)) / SECONDS) * 2 DIRECTION_LAT = 1 if LAT_DST - LAT_SRC > 0 else -1 DIRECTION_LNG = 1 if LNG_DST - LNG_SRC > 0 else -1 lat = LAT_SRC lng = LNG_SRC tn = telnetlib.Telnet(HOST, PORT, TIMEOUT) tn.set_debuglevel(9) tn.read_until("OK", 5) tn.write("auth {0}/n".format(AUTH_TOKEN)) tn.read_until("OK", 5) tn.read_until("OK", 5) tn.write("geo fix {0} {1}/n".format(LNG_SRC, LAT_SRC)) #tn.write("exit/n") for i in range(SECONDS): lat += round(random.uniform(0, LAT_MAX_STEP), 7) * DIRECTION_LAT lng += round(random.uniform(0, LNG_MAX_STEP), 7) * DIRECTION_LNG #tn.read_until("OK", 5) tn.write("geo fix {0} {1}/n".format(lng, lat)) #tn.write("exit/n") sleep(1) tn.write("geo fix {0} {1}/n".format(LNG_DST, LAT_DST)) tn.write("exit/n") print tn.read_all()

Desde un script de shell se puede configurar el coorinate así.

#!/usr/bin/env bash export ATOKEN=`cat ~/.emulator_console_auth_token` echo -ne "auth $ATOKEN/ngeo fix -99.133333 19.43333 2202/n" | nc localhost 5554



Para un proyecto propio, desarrollé un servicio en línea que puede proporcionar una ubicación simulada al emulador de Android.

Utiliza geo nmea en lugar de geo fix, que le permite establecer la velocidad, el rumbo, el tiempo preciso, etc. además de solo lat / lon.

El servicio requiere la utilidad de línea de comandos nc (netcat) y nada más.

http://www.kisstech.ch/nmea/


Para usuarios de Android Studio:

ejecuta el emulador,

Luego, vaya a Tools -> Android ->Android device monitor

abra la pestaña Emulator Control y use el grupo de controles de ubicación.


Primero vaya a la sección DDMS en su eclipse. Abra el control del emulador .... Vaya a la sección Manual, establezca el tiempo y luego presione el botón Enviar


Puede usar un emulador como genymotion que le brinda la flexibilidad de emular su ubicación GPS actual, etc.


Puedes conectarte al Emulador a través de Telnet. Luego, tiene una consola de emulación que le permite ingresar ciertos datos como correcciones geográficas, red, etc.

Cómo utilizar la consola se explica ampliamente here . Para conectarse a la consola, abra una línea de comando y escriba

telnet localhost 5554

Luego puede usar el comando geo para establecer la latitud, la longitud y, si es necesario, la altitud en el dispositivo que se pasa a todos los programas usando el proveedor de ubicación gps. Vea el enlace de arriba para más instrucciones.

El comando específico para ejecutar en la consola es

geo fix <longitude value> <latitude value>

Encontré este sitio útil para encontrar un lat / lng realista: http://itouchmap.com/latlong.html

Si necesita más de una coordenada, puede usar un archivo kml con una ruta, como se describe en este article . No puedo encontrar una mejor fuente en este momento.


Si está utilizando Eclipse , vaya a Window->Open Perspective->DDMS , luego escriba uno en Location Controls y Window->Open Perspective->DDMS Send .


Si está utilizando Android Studio (1.3):

  • Haga clic en el menú "Herramientas"
  • "Androide"
  • "Monitor de dispositivo Android"
  • haga clic en su emulador actual
  • Pestaña "Control de emulador"
  • Vaya a "Controles de ubicación" e ingrese Lat y Lon

Si está utilizando eclipse y luego el controlador del emulador, puede configurar manualmente la latitud y la longitud y ejecutar su aplicación basada en mapas en el emulador


Si las soluciones anteriores no funcionan. Prueba esto:

Dentro de su Manifest.xml de Android, agregue los siguientes dos enlaces FUERA DE LA etiqueta de la aplicación, pero, por supuesto, dentro de su etiqueta de manifiesto

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission> <uses-permission android:name="android.permission.INTERNET" ></uses-permission>


Solo haz la respuesta de Alberto Gaona en una línea

token=$(cat ~/.emulator_console_auth_token); cat <(echo -e "auth $token /n geo fix 96.0290791 16.9041016 /n exit") - | nc localhost 5554

5554 es el número de puerto del emulador que se muestra en los adb devices .

Hubiera sido mejor si adb emu funcionara.


Usando el comando "geo" en la consola del emulador

Para enviar datos de ubicación simulados desde la línea de comando:

  1. Inicie su aplicación en el emulador de Android y abra una terminal / consola en el directorio / tools de su SDK.

  2. Conéctate a la consola del emulador:

    telnet localhost 5555 (Reemplace 5555 con cualquier puerto en el que se esté ejecutando su emulador)

  3. Envíe los datos de ubicación: * geo fix para enviar una ubicación geográfica fija.

    Este comando acepta una longitud y latitud en grados decimales y una altitud opcional en metros. Por ejemplo:

    geo fix -121.45356 46.51119 4392


Utilizo la función DDMS plug eclipse para enviar GPS.


Abra Android studio-> Menú de herramientas-> Android-> Monitor de dispositivo Android-> Pestaña del emulador-> Control de ubicación-> Establezca la latitud y longitud requeridas y verifique su proyecto según sus necesidades


1. Usuarios de Android Studio.

Después de ejecutar el emulador, vaya a Herramientas-> Android-> Monitor de dispositivo Android

Haga clic en la pestaña Control de emulador cambiar desde el grupo de controles de ubicación.

2. Eclipse usuarios.

Primero en Eclipse En el menú Seleccione "Ventana", luego seleccione "Abrir perspectiva" y luego seleccione "DDMS". Es decir, Ventana-> Abrir Prespectiva-> DDMS.

Verá en el Panel de dispositivos del lado izquierdo y en el lado derecho verá diferentes pestañas. Seleccione la pestaña "Control de emulador".

En la parte inferior verá el panel de controles de ubicación. Seleccione la pestaña "Manual".

Ingrese la longitud y la latitud en los cuadros de texto y luego haga clic en el botón Enviar. Le enviará la posición a usted emulador y la aplicación.

3. Utilizando telnet.

En el comando de ejecución escribe esto.

telnet localhost 5554

Si no está utilizando Windows, puede usar cualquier cliente telnet.

Después de conectarse con telnet, use el siguiente comando para enviar su posición al emulador.

geo fix long lat geo fix -121.45356 46.51119 4392

4. Utilice la herramienta de mapas de Google basada en el navegador

Hay un programa que utiliza GWT y la API de Google Maps para iniciar una herramienta de mapas basada en el navegador para establecer la ubicación del GPS en el emulador:

android-gps-emulator