Posso riavviare il Bluetooth dal terminale?


8

Ho un Galaxy S 2 (I9100) con root e mi chiedevo se posso riavviare il Bluetooth sul mio telefono tramite il client terminale sul mio telefono.

Risposte:


10

Il seguente comando del terminale dovrebbe abilitare il Bluetooth tramite la shell adb o l'app Terminal Emulator:

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

Sulla maggior parte delle versioni di Android, questo comando presenterà una finestra pop-up all'utente che chiede di confermare la richiesta di abilitazione di BT. Credo che ciò sia stato fatto per motivi di sicurezza ogni volta che un'app che non è un sistema attiva BT.

Purtroppo non ho trovato un modo per disabilitare BT tramite un comando shell.

Con WiFi è molto più semplice e non richiede all'utente l'autorizzazione:

su
svc wifi enable

lo accenderà e

su
svc wifi disable

lo spegnerà.


Grazie per la risposta. Proverò lo stesso. Potresti anche elencare lo stesso per il WiFi?
Clyde Lobo,

Modificata la mia risposta con le informazioni WiFi. Non ho trovato un modo per disabilitare BT tramite un comando terminale però :(
Chahk

6

in android.bluetooth.IBluetoothManager, ci sono alcuni parametri

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

Quindi, con il dispositivo rooted, se si desidera disattivare il bluetooth in modalità super user shell adb (su)

service call bluetooth_manager 8

se si desidera riattivare il bluetooth

service call bluetooth_manager 6

dispositivo che uso è HTC One con Android 4.4.2
Jamy

Conferma che funziona su Android 4.2.2
pevik

Service bluetooth_manager does not existsu Android 4.1.2
davide

3

Abilita bluetooth:
service call bluetooth 3

Disabilita bluetooth:
service call bluetooth 4


Elettore negativo: potresti aiutare a identificare il problema con questa risposta (dopo la modifica)? Questi hanno funzionato nel mio telefono rootato dopo su- quindi tecnicamente nulla di sbagliato in AFAIK.
Narayanan,

1
Abilita bluetooth: chiamata di servizio bluetooth 3 Disabilita bluetooth: chiamata di servizio bluetooth 5 funziona sul mio HTC Desire X
Anvesh Yalamarthy

1
service call bluetooth 5funziona nel mio Android 4.2.1 per disabilitare il bluetooth.
Firelord

Su un "Galaxy Fame GT-6810P", i numeri corretti sono 3 e 5.
davide

1

Funziona da una shell:

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

Fondamentalmente fa apparire il dialogo e quindi invia i tasti per accettare il comando


0

La mia soluzione funziona.

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

Si noti che quando si esegue il primo comando, salta fuori da una finestra che richiede di selezionare CONSENTI.

Quindi è necessario il comando di clic automatico.

Puoi ottenere la posizione X, Y abilitando Opzioni sviluppatore-> Posizione puntatore, quindi tocca il pulsante CONSENTI.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.