Usando ADB shell, ¿Cómo puedo deshabilitar el punto de acceso / conexión en lollipop Nexus 5?

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

Necesito deshabilitar el punto de acceso de ADB, ya busqué en Google pero no encontré nada, también intenté deshabilitar y habilitar el wi-fi, no funciona.

Respuestas (2)

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

Por ejemplo en mi teléfono podría llamar

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

Service callllamará al número de función 24en el servicio de conectividad (que resultó ser la función que activa la conexión) y lo pasará 0como argumento ( 0sería conexión wi-fi, 1 sería conexión USB y 2sería 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 función correcto 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 para el 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

Parece que me faltan algunos permisos, puedo ver eso en el registro de paquetes que obtengo al ejecutar el comando
Sí, olvidé decir que debe estar rooteado para poder hacer esto, por lo que debe ejecutar el comando "su" antes de ejecutar cualquiera de estos.
  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
+1. Esto es útil, aunque en mi CM12 tuve que agregar más eventos clave 20 y 66, pero funciona bien. ¡Bueno!
Mediante el uso de esta pregunta , la solución se puede reducir 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!
Esto funcionó para mi Nexus 6 en Android 5.0 para habilitar WifiTether, pero tuve que agregar un evento clave 20 más. Parece que 5.0+ ha anulado la capacidad de habilitar WifiTether desde un complemento de Tasker o desde Tasker mismo. ¿Realmente no hay un comando am start que inicie el punto de acceso directamente?