¿Es posible habilitar los Servicios de ubicación (GPS o Google NetworkLocation) a través de ADB o Terminal Emulator? Estoy en un teléfono rooteado.
Puntos extra: ¿También es posible cambiar otras configuraciones relacionadas con el sistema?
¿Es posible habilitar los Servicios de ubicación (GPS o Google NetworkLocation) a través de ADB o Terminal Emulator? Estoy en un teléfono rooteado.
Puntos extra: ¿También es posible cambiar otras configuraciones relacionadas con el sistema?
Respuestas:
¿Es posible habilitar los servicios de ubicación (GPS o Google NetworkLocation) a través de ADB o Terminal Emulator?
El comando es:
adb shell settings put secure location_providers_allowed gps
dónde,
settings
haría cambios en settings.db
(parte de com.android.providers.settings
)put
es actualizar la clave location_providers_allowed
con el valor gps
en la tabla secure
.El comando mencionado no habilitaría el Servicio de ubicació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 aceptar los Servicios de ubicación. En mi Android 4.2.1, tengo que aceptar a través de la GUI o input keyevent
cada vez que habilito el servicio desde cero.
Sin embargo, en mi Android 5.0 puedo guardar la configuración en el cuadro de diálogo y la ejecución del comando hace las cosas perfectamente desde la próxima vez.
Algunos dispositivos como los de Lollipop tienen tres modos de ubicación, y los valores relevantes que se pasarán en el comando mencionado serían:
gps,wifi,network
o gps,network
(si no desea habilitar Wi-Fi)wifi,network
o network
sologps
adb shell settings put secure location_providers_allowed ' '
¿También es posible cambiar otras configuraciones relacionadas con el sistema?
Ver :
Pero ya di una gran idea usando settings put
.
location_providers_allowed
ser desaprobado ( developer.android.com/reference/android/provider/… ). Ideas?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
luego haga clic en el botón de cambio.
Para Android 6.0
Para habilitar el uso:
Para GPS: adb shell settings put secure location_providers_allowed +gps
Para la red: adb shell settings put secure location_providers_allowed +network
Deshabilitar :
GPS : adb shell settings put secure location_providers_allowed -gps
Para la red: adb shell settings put secure location_providers_allowed -network
El servicio de ubicación de Android viene con diferentes opciones:
1) Alta precisión: gps, network
Habilitar:
adb shell settings put secure location_providers_allowed +gps,network
Inhabilitar:
adb shell settings put secure location_providers_allowed -gps,network
2) Solo teléfono: gps
Habilitar:
adb shell settings put secure location_providers_allowed +gps
Inhabilitar: 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
Inhabilitar: 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 location_mode
a LOCATION_MODE_HIGH_ACCURACY
con un valor de 3:
adb shell settings put secure location_mode 3
NOTA: Probablemente no funcionará> v29 ya que esto ya está en desuso, ya que los documentos en el modo de ubicación mencionan:
Esta constante fue desaprobada en el nivel 28 de API. Los métodos preferidos para verificar el modo de ubicación y escuchar los cambios son a través de
LocationManager#isLocationEnabled()
yLocationManager#MODE_CHANGED_ACTION
.
No sé cuál será una forma programática de hacer esto a través del shell una vez que esta constante desaparezca.