Habilite los servicios de ubicación a través de ADB o shell

Tengo un teléfono rooteado. ¿Es posible habilitar los servicios de ubicación (GPS o ubicación de red) a través de ADB o Terminal Emulator?

Respuestas (4)

En Android 6.0,

Para permitir:

  • GPS:adb shell settings put secure location_providers_allowed +gps
  • Red:adb shell settings put secure location_providers_allowed +network

Deshabilitar:

  • GPS:adb shell settings put secure location_providers_allowed -gps
  • Red :adb shell settings put secure location_providers_allowed -network

En Android 11.0,

Para permitir:

  • GPS:adb shell settings put secure location_mode 3

Deshabilitar:

  • GPS:adb shell settings put secure location_mode 0
Gracias, funciona. ¿Hay alguna forma de que podamos habilitar/deshabilitar gps y la red con un comando adb de una línea? Lo necesito para localización de alta precisión. gps+red =alta precisión

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

  1. Alta precisión:gps, network

    • Permitir:adb shell settings put secure location_providers_allowed +gps,network
    • Desactivar:adb shell settings put secure location_providers_allowed -gps,network
  2. Solo teléfono:gps

    • Permitir: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

    • Permitir:adb shell settings put secure location_providers_allowed +network
    • Desactivar:adb shell settings put secure location_providers_allowed -network

location_providers_allowedya no funciona para Android 10 (API nivel 29).

En su lugar, puede configurar location_modeto LOCATION_MODE_HIGH_ACCURACYcon un valor de 3:

adb shell settings put secure location_mode 3

NOTA: Probablemente no funcionará > v29 ya que esto ya está en desuso como lo mencionan los documentos en Modo de ubicación:

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

No sé qué forma programática de hacer esto a través del shell será una vez que esta constante desaparezca.

  • Permitir:adb shell settings put secure location_mode 3
  • Desactivar:adb shell settings put secure location_mode 0

Consulte Desbordamiento de pila: cómo habilitar/deshabilitar los servicios de ubicación GPS en Android 9 a través de los comandos ADB (dispositivo no rooteado) .

Funciones en Android 11.
@user598527, hola! Gracias por el comentario. Actualmente no lo sé.