Puis-je redémarrer Bluetooth depuis le terminal?


8

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

Réponses:


10

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

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

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

Je n'ai malheureusement pas trouvé de moyen de désactiver BT via une commande shell.

Avec le WiFi, c'est beaucoup plus facile et n'invite pas l'utilisateur à obtenir la permission:

su
svc wifi enable

va l'allumer, et

su
svc wifi disable

le désactivera.


Merci d'avoir répondu. Je vais essayer la même chose. Pourriez-vous également lister la même chose pour le WiFi?
Clyde Lobo

Modifié ma réponse avec les informations WiFi. Je n'ai cependant pas trouvé de moyen de désactiver BT via une commande de terminal :(
Chahk

6

dans android.bluetooth.IBluetoothManager, il y a quelques 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

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

service call bluetooth_manager 8

si vous souhaitez réactiver le bluetooth

service call bluetooth_manager 6

appareil que j'utilise est HTC One avec android 4.4.2
Jamy

Confirmez que cela fonctionne sur Android 4.2.2
pevik

Service bluetooth_manager does not existsur Android 4.1.2
davide

3

Activez le bluetooth:
service call bluetooth 3

Désactiver le bluetooth:
service call bluetooth 4


Électeur négatif: pourriez-vous aider à identifier le problème avec cette réponse (après modification)? Ceux-ci ont fonctionné dans mon téléphone enraciné après su- donc techniquement rien de mal à AFAIK.
Narayanan

1
Activer le bluetooth: appel de service bluetooth 3 Désactiver le bluetooth: l'appel de service bluetooth 5 fonctionne sur mon HTC Desire X
Anvesh Yalamarthy

1
service call bluetooth 5fonctionne dans mon Android 4.2.1 pour désactiver le bluetooth.
Firelord

Sur un "Galaxy Fame GT-6810P", les bons chiffres sont 3 et 5.
davide

1

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

Fondamentalement, il fait apparaître la boîte de dialogue, puis envoie des touches pour accepter la commande


0

Ma solution fonctionne.

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

Notez que lors de l'exécution de la première commande, il saute une fenêtre vous demande 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 du développeur-> Emplacement du pointeur, puis appuyez sur le bouton AUTORISER.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.