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.