¿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?
¿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?
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
¿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.
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.
Algunos dispositivos como los de Lollipop tienen tres modos de localización, y los valores relevantes a pasar en el citado comando serían:
gps,wifi,network
o gps,network
(si no quieres que se habilite el Wi-Fi)wifi,network
o network
sólogps
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
.
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
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()
yLocationManager#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.
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.
0 votos
Esta pregunta ya ha sido formulada, véase: ¿Puedo cambiar algunos ajustes de Android desde la línea de comandos?
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.
1 votos
@lorddev No, no se mencionan explícitamente. Pero puedes usar el mismo código para llamar a la intención de los servicios de localización. Lo que me confunde un poco es el enunciado de mi comentario, que sugiere un "golpe directo" (y aquí los dos tenéis razón: no es exactamente lo mismo). Es difícil decir, medio año después, lo que tenía en mente entonces...