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.

Clyde Lobo
la source

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.

Chahk
la source
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
Jamy
la source
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

user38665
la source
É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

disneysw
la source
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.

user3759386
la source