8 votos

¿Puedo reiniciar el Bluetooth desde el terminal?

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

10voto

Chahk Puntos 15796

El siguiente comando de terminal debería habilitar el Bluetooth a través de la aplicación adb shell o 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 pidiéndole que confirme la solicitud de habilitar el BT. Creo que esto se hizo por motivos de seguridad cuando una aplicación que no es del sistema está activando el BT.

No he encontrado la forma de deshabilitar el BT a través de un comando de shell, desafortunadamente.

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

su
svc wifi enable

lo encenderá, y

su
svc wifi disable

lo apagará.

0 votos

Gracias por la respuesta. Probaré lo mismo. ¿Podría también hacer una lista de lo mismo para el WiFi?

0 votos

He editado mi respuesta con la información del WiFi. No he encontrado una manera de desactivar BT a través de un comando de terminal sin embargo :(

6voto

Jamy Puntos 31

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

TRANSACCIÓN_registroAdaptador = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 0); Adaptador de desregistro de transacciones = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 1); TRANSACTION_registerStateChangeCallback = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 2); TRANSACCIÓN_despegarseCambioDeEstadoRetornoDeLlamada = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 3); TRANSACTION_isEnabled = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 4); Habilitar_transacción = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 5); Habilitar NoAutoConnect = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 6); Deshabilitar_transacción = (Android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
TRANSACCIÓN_ObtenerDirección = (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 de root, si quieres apagar el bluetooth en el modo de superusuario de adb shell (su)

service call bluetooth_manager 8

si quieres volver a encender el bluetooth

service call bluetooth_manager 6

0 votos

El dispositivo que uso es el HTC One con Android 4.4.2

0 votos

Confirma que esto funciona en Android 4.2.2

0 votos

Service bluetooth_manager does not exist en Android 4.1.2

3voto

user38665 Puntos 11

Activar el bluetooth:
service call bluetooth 3

Deshabilitar el bluetooth:
service call bluetooth 4

0 votos

Votante negativo: ¿podría ayudar a identificar el problema con esta respuesta (después de la edición)? Estos trabajaron en mi teléfono rooteado después de su - así que técnicamente no hay nada malo AFAIK.

1 votos

Activar bluetooth: servicio de llamada bluetooth 3 Desactivar bluetooth: servicio de llamada bluetooth 5 funciona en mi HTC Desire X

1 votos

service call bluetooth 5 funciona en mi Android 4.2.1 para desactivar el bluetooth.

2voto

fedorqui Puntos 1246

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 envía las pulsaciones de las teclas para aceptar el comando

0voto

codenoob Puntos 121

Mi solución funciona.

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

Observe que al ejecutar el primer comando, salta una ventana que le pide que seleccione ALLOW.

Así que necesitas el comando de auto-clic.

Puede obtener la posición X,Y activando Opciones de desarrollo->Localización del puntero, luego toque el botón PERMITIR.

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