18 votos

¿Es posible activar los servicios de localización a través de Shell?

¿Es posible habilitar los servicios de localización (GPS o Google NetworkLocation) a través de ADB o emulador de terminal? Estoy en un teléfono rooteado.

Puntos extra: ¿Es posible cambiar también otros ajustes relacionados con el sistema?

0 votos

2 votos

@Izzy no creo que sea del todo un duplicado.

2 votos

@Izzy no está relacionado. La pregunta que enlazaste no tiene nada que ver con los servicios de localización.

20voto

Aditya S Puntos 21

Para Android 6.0

Para activar el uso :

Para el GPS : adb shell settings put secure location_providers_allowed +gps

Para la red : adb shell settings put secure location_providers_allowed +network

Para desactivar :

GPS : adb shell settings put secure location_providers_allowed -gps

Para la red : adb shell settings put secure location_providers_allowed -network

0 votos

Esto me funcionó, no es la respuesta aceptada.

0 votos

Gracias, funciona. ¿Hay alguna forma de activar/desactivar el gps y la red con un comando adb de una línea? Lo necesito para la localización de alta precisión. gps+red = alta precisión

12voto

Firelord Puntos 161

¿Es posible activar los servicios de localización (GPS o Google NetworkLocation) a través de ADB o del emulador de terminal?

El comando es:

adb shell settings put secure location_providers_allowed gps

donde,

  • settings haría cambios en settings.db (parte de com.android.providers.settings )
  • put es actualizar la clave location_providers_allowed con valor gps en la tabla secure .

El mencionado comando no habilitaría el Servicio de Localización de Google. Para habilitarlo también, emita el comando:

adb shell settings put secure location_providers_allowed gps,network

Se le mostrará una ventana emergente para que acepte los servicios de localización. En mi Android 4.2.1, tengo que aceptar a través de GUI o input keyevent cada vez que habilito el servicio desde cero.

                                                                    IMG: 4.2.1

Sin embargo, en mi Android 5.0 puedo guardar los ajustes en el diálogo y la ejecución del comando hace que las cosas se hagan perfectamente a partir de la próxima vez.

                                                                    IMG: 5.0

Algunos dispositivos como los de Lollipop tienen tres modos de localización, y los valores relevantes a pasar en el citado comando serían:

  • Alta precisión: gps,wifi,network o gps,network (si no quieres que se habilite el Wi-Fi)
  • Ahorro de batería: wifi,network o network sólo
  • Sólo el dispositivo: gps

Para desactivar el modo de localización

adb shell settings put secure location_providers_allowed ' '

¿Es posible cambiar también otros ajustes relacionados con el sistema?

Ver :

Pero ya di una gran idea usando settings put .

7voto

Parth Naik Puntos 41

El servicio de localización de Android viene con diferentes opciones:

1) Alta precisión: gps, network

Habilitar: adb shell settings put secure location_providers_allowed +gps,network

Desactivar: adb shell settings put secure location_providers_allowed -gps,network

2) Sólo teléfono: gps

Habilitar: adb shell settings put secure location_providers_allowed +gps

Desactivar: adb shell settings put secure location_providers_allowed -gps

3) Ahorro de batería: network

Habilitar: adb shell settings put secure location_providers_allowed +network

Desactivar: adb shell settings put secure location_providers_allowed -network

5voto

Bhushan Kawadkar Puntos 145

location_providers_allowed ya no funciona para Android 10 (nivel de API 29).

En su lugar, puede establecer el location_mode a LOCATION_MODE_HIGH_ACCURACY con un valor de 3:

adb shell settings put secure location_mode 3

NOTA: Probablemente no funcione >v29 ya que esto es ya obsoleto, como se menciona en los documentos sobre el modo de localización:

Esta constante quedó obsoleta en el nivel 28 de la API. Los métodos preferidos para comprobar el modo de localización y escuchar los cambios son a través de LocationManager#isLocationEnabled() y LocationManager#MODE_CHANGED_ACTION .

No sé qué manera programática de hacer esto a través de la cáscara será una vez que esta constante desaparece.

4voto

CoolMind Puntos 101

Ver https://stackoverflow.com/questions/60559166/how-to-enable-disable-gps-location-services-on-Android-9-via-adb-commands-not-r :

Habilitar: adb shell settings put secure location_mode 3

Desactivar: adb shell settings put secure location_mode 0

0 votos

@user598527, ¡hola! Gracias por el comentario. Actualmente no lo sé.

0 votos

Funciones en Android 11.

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