3 votos

El uso de ADB shell, ¿Cómo puedo desactivar hostspot / tethering en lollypop Nexus 5

Mi pantalla se rompió y he estado usando mi teléfono con un servidor VNC instalado en él, pero esta mañana tuve la estúpida idea de habilitar el hotspot sólo para ver si puedo usar mi plan de datos móviles en mi portátil, pero cuando hice esto, el wifi se desconectó de mi router y ahora sólo tengo acceso a mi teléfono usando adb shell.

Necesito desactivar el hotspot desde el ADB, ya busqué en google pero no encontré nada, también intenté desactivar y activar el wifi, no funciona.

5voto

Thomas Schmid Puntos 21
  adb shell input keyevent 3 # home   

  adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings

  adb shell input keyevent 20 # down                                                   

  adb shell input keyevent 20 # down

  adb shell input keyevent 20 # down

  adb shell input keyevent 66 # enter

  adb shell input keyevent 20 # down

  adb shell input keyevent 20 # down

  adb shell input keyevent 66 # enter                                                 

  adb shell input keyevent 20 # down

  adb shell input keyevent 66 # enter

0 votos

+1. Esto es útil aunque en mi CM12 tuve que añadir algún keyevent más 20 y 66 pero funciona bien. ¡Muy bien!

2 votos

Al utilizar este pregunta la solución puede reducirse a sólo tres pasos :- adb shell am start -n com.android.settings/.TetherSettings -> adb shell input keyevent 20 -> adb shell input keyevent 66 . Hecho.

0 votos

Esto funcionó para mi Nexus 6 en Android 5.0 para permitir WifiTether pero tuve que añadir un keyevent 20 más. Parece 5.0 + ha borked la capacidad de permitir WifiTether de un plugin de Tasker o de Tasker sí mismo. ¿Realmente no hay un comando am start que inicie el hotspot directamente?

1voto

dampier Puntos 1308

Una forma más limpia de hacerlo es llamando al comando "llamada de servicio".

Por ejemplo, en mi teléfono podría llamar a

# Start Wifi tethering
adb shell service call connectivity 24 i32 0 
# Stop Wifi tethering
adb shell service call connectivity 25 i32 0 

Service call llamará al número de la función 24 en el servicio de conectividad (que resulta ser la función que activa el tethering) y lo pasa 0 como argumento ( 0 sería el tethering wi-fi, 1 sería el tethering usb y 2 sería el bluetooth).

Lamentablemente, el código de las funciones de servicio cambia de una versión de Android a otra. Esta respuesta de stackoverflow explica cómo obtener el código de la función correcta para su versión actual de Android. https://stackoverflow.com/questions/20227326/where-to-find-info-on-androids-service-call-shell-command

También esta es la lista de funciones del servicio de conectividad para la versión de Android que estoy usando (Nougat) https://Android.googlesource.com/platform/frameworks/base/+/Android-7.1.2_r1/core/java/Android/net/IConnectivityManager.aidl

0 votos

Parece que me faltan algunos permisos, lo puedo ver en el parcel-log que obtengo al ejecutar el comando

1 votos

Sí, se me olvidó decir que necesitas estar rooteado para poder hacer esto, así que necesitas ejecutar el comando "su" antes de ejecutar cualquiera de estos.

0 votos

¿Es posible establecer la banda ap a través de este método, por favor hágamelo saber cómo

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