9 votos

¿Es posible establecer la latitud y la longitud del dispositivo mediante ADB SHELL?

Sé cómo establecer locatlon para emuladores utilizando la interfaz de configuración de dispositivos de Motodoev Studio, por ejemplo. Pero, ¿cómo puedo establecer locatlon para un dispositivo?

6voto

jmp Puntos 111

Alternativamente, lo que también podría ser una opción en este caso es utilizar la herramienta de Appium La aplicación de io.appium.setting .

Una vez que esa aplicación está instalada en el dispositivo puedes darle permisos y simular la ubicación a través de adb así:

  adb shell pm grant io.appium.settings android.permission.READ_PHONE_STATE
  adb shell pm grant io.appium.settings android.permission.WRITE_SETTINGS
  adb shell pm grant io.appium.settings android.permission.ACCESS_FINE_LOCATION
  adb shell pm grant io.appium.settings android.permission.ACCESS_COARSE_LOCATION
  adb shell pm grant io.appium.settings android.permission.ACCESS_MOCK_LOCATION
  adb shell pm grant io.appium.settings android.permission.SET_ANIMATION_SCALE
  adb shell pm grant io.appium.settings android.permission.CHANGE_CONFIGURATION

  adb shell am start -W -n io.appium.settings/.Settings -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000
  adb shell appops set io.appium.settings android:mock_location allow

  adb shell am startservice -e longitude 28 -e latitude 77 io.appium.settings/.LocationService;

Para más información sobre la aplicación y otras intenciones, consulte su léeme

5voto

Jared Burrows Puntos 210

Esto es posible utilizando el shell de ADB:

$ telnet localhost 5554
Android Console: type 'help' for a list of commands
OK
geo fix -82.411629 28.054553
OK

Por favor, lea: https://stackoverflow.com/a/2587369/950427

0 votos

¿esto no es para un dispositivo? AFAIK, no hay ninguna manera de establecer la ubicación que no sea la imitación de la ubicación en su dispositivo, y añadir un proveedor de ubicación de prueba.

0 votos

Sí, creo que esto es lo que buscaba. ¿Cuál es su pregunta?

6 votos

Voto negativo porque el OP está preguntando explícitamente sobre un Dispositivo. Esto sólo funciona para el emulador.

5voto

luv Puntos 111

Para añadir a la respuesta de Jared (no puedo comentar - no hay suficiente reputación todavía :/). Esto funciona sólo con el emulador, así que escribí una aplicación que se puede ejecutar en un dispositivo real y proporciona exactamente la misma interfaz (telnet a :5554 y ejecutar "geo fix ..." o "geo nmea"): MockGeoFix

0 votos

Mockgeofix no se conecta a través de telnet

0 votos

Mockgeofix ejecuta el servidor telnet y usted se conecta a mockgeofix usando telnet

-1voto

hannes ach Puntos 101

Como alternativa a la respuesta de @jmp, puedo recomendar utilizar en lugar de la aplicación de Appium el FakeTraveler No tiene la desventaja de correr mucho adb comandos de permiso, que realmente no funcionan fuera de la caja y sin buscar en google por qué establecer el permiso ACCESS_MOCK_LOCATION no funcionan.

FakeTraveler le guía automáticamente a la configuración correcta del desarrollador

enter image description here

0 votos

AFAIK, hay muchas aplicaciones de localización falsas por ahí, pero esas no responden realmente a la pregunta de cambiar la ubicación usando ADB. ¿Esta aplicación permite controlar la ubicación mediante el ADB?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X