¿Puedo reiniciar Bluetooth desde el terminal?

8

Tengo un Galaxy S 2 rooteado (I9100) y me preguntaba si puedo reiniciar el Bluetooth en mi teléfono a través del cliente terminal en mi teléfono.

Clyde Lobo
fuente

Respuestas:

10

El siguiente comando de terminal debe habilitar Bluetooth a través de adb shell o la aplicación Terminal Emulator:

su
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE

En la mayoría de las versiones de Android, este comando presentará una ventana emergente al usuario que le pedirá que confirme la solicitud para habilitar BT. Creo que esto se hizo por motivos de seguridad cada vez que una aplicación que no es del sistema alterna BT.

Lamentablemente, no he encontrado una manera de desactivar BT a través de un comando de shell.

Con WiFi es mucho más fácil y no solicita permiso al usuario:

su
svc wifi enable

lo encenderá y

su
svc wifi disable

lo apagará

Chahk
fuente
Gracias por la respuesta. Intentaré lo mismo. ¿Podría también enumerar lo mismo para WiFi?
Clyde Lobo
Edité mi respuesta con la información de WiFi. Sin embargo, no he encontrado una manera de desactivar BT a través de un comando de terminal :(
Chahk
6

en android.bluetooth.IBluetoothManager, hay algunos parámetros

TRANSACTION_registerAdapter = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); TRANSACTION_unregisterAdapter = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); TRANSACTION_registerStateChangeCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); TRANSACTION_unregisterStateChangeCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); TRANSACTION_isEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); TRANSACTION_enable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); TRANSACTION_enableNoAutoConnect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); TRANSACTION_disable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
TRANSACTION_getAddress = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); TRANSACTION_getName = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9);

android.os.IBinder.FIRST_CALL_TRANSACTION = 1

SO, con dispositivo rooteado, si desea desactivar bluetooth en modo super usuario adb shell (su)

service call bluetooth_manager 8

si quieres volver a activar bluetooth

service call bluetooth_manager 6
Jamy
fuente
dispositivo que uso es HTC One con Android 4.4.2
Jamy
Confirme que esto funciona en Android 4.2.2
pevik
Service bluetooth_manager does not existen Android 4.1.2
davide
3

Habilitar bluetooth:
service call bluetooth 3

Deshabilitar bluetooth:
service call bluetooth 4

usuario38665
fuente
Votante negativo: ¿podría ayudar a identificar el problema con esta respuesta (después de editar)? Estos funcionaron en mi teléfono rooteado después su, por lo que técnicamente no hay nada malo AFAIK.
Narayanan
1
Activar bluetooth: llamada de servicio bluetooth 3 Desactivar bluetooth: llamada de servicio bluetooth 5 funciona en mi HTC Desire X
Anvesh Yalamarthy
1
service call bluetooth 5funciona en mi Android 4.2.1 para deshabilitar bluetooth.
Señor del fuego
En un "Galaxy Fame GT-6810P", los números correctos son 3 y 5.
davide
1

Esto funciona desde un shell:

am start -a android.bluetooth.adapter.action.REQUEST_ENABLE & input keyevent 20 & adb shell input keyevent 21 & adb shell input keyevent 23

Básicamente, hace que aparezca el diálogo y luego presiona las teclas para aceptar el comando

disneysw
fuente
0

Mi solución funciona

am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
sleep 1
input tap 872 1072

Tenga en cuenta que cuando ejecuta el primer comando, salta una ventana que le pide que seleccione PERMITIR.

Entonces necesita el comando de clic automático.

Puede obtener la posición X, Y habilitando Opciones de desarrollador-> Ubicación del puntero, luego toque el botón PERMITIR.

usuario3759386
fuente