8 votes

Puis-je redémarrer Bluetooth à partir du terminal ?

J'ai un Galaxy S 2 enraciné (I9100) et je me demandais si je pouvais redémarrer le Bluetooth sur mon téléphone via le terminal client sur mon téléphone.

10voto

Chahk Points 19297

La commande terminal suivante devrait activer le Bluetooth via adb shell ou l'application Terminal Emulator :

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

Sur la plupart des versions d'Android, cette commande affichera une fenêtre contextuelle à l'utilisateur demandant de confirmer la demande d'activation du BT. Je crois que cela a été fait à des fins de sécurité chaque fois qu'une application qui n'est pas du système active BT.

Malheureusement, je n'ai pas trouvé de moyen de désactiver le BT via une commande shell.

Avec le WiFi, c'est beaucoup plus facile, et ne demande pas la permission de l'utilisateur :

su
svc wifi enable

va l'activer, et

su
svc wifi disable

va le désactiver.

0 votes

Merci pour la réponse. Je vais essayer la même chose. Pourriez-vous également lister la même chose pour le WiFi ?

0 votes

J'ai modifié ma réponse avec les infos sur le WiFi. Je n'ai pas trouvé de moyen de désactiver le BT via une commande de terminal :(

6voto

Jamy Points 61

Dans android.bluetooth.IBluetoothManager, il y a certains paramètres

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

DONC, avec un appareil rooté, si vous voulez désactiver le bluetooth en mode super utilisateur dans adb shell (su)

service call bluetooth_manager 8

si vous voulez réactiver le bluetooth

service call bluetooth_manager 6

0 votes

L'appareil que j'utilise est le HTC One avec android 4.4.2.

0 votes

Confirmer que cela fonctionne sur Android 4.2.2

0 votes

Le service bluetooth_manager n'existe pas sur Android 4.1.2

3voto

user38665 Points 41

Activer le bluetooth :
service call bluetooth 3

Désactiver le bluetooth :
service call bluetooth 4

0 votes

Vote négatif : pourriez-vous m'aider à identifier le problème avec cette réponse (après l'édition) ? Ces commandes ont fonctionné sur mon téléphone rooté après su - donc techniquement rien de mal à priori.

1 votes

Activer bluetooth: service call bluetooth 3 Désactiver bluetooth: service call bluetooth 5 fonctionne sur mon HTC Desire X

1 votes

service call bluetooth 5 fonctionne sur mon Android 4.2.1 pour désactiver le bluetooth.

2voto

fedorqui Points 9359

Cela fonctionne à partir d'un shell :

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

Essentiellement, cela fait apparaître le dialogue puis envoie des touches pour accepter la commande

0voto

user3759386 Points 1

Ma solution fonctionne.

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

Remarquez que lorsque vous exécutez la première commande, une fenêtre apparaît vous demandant de sélectionner AUTORISER.

Vous avez donc besoin de la commande de clic automatique.

Vous pouvez obtenir la position X, Y en activant les options pour les développeurs->Localisation du pointeur, puis en touchant le bouton AUTORISER.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X