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.
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:
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à.
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
Service bluetooth_manager does not exist
su Android 4.1.2
Abilita bluetooth:
service call bluetooth 3
Disabilita bluetooth:
service call bluetooth 4
su
- quindi tecnicamente nulla di sbagliato in AFAIK.
service call bluetooth 5
funziona nel mio Android 4.2.1 per disabilitare il bluetooth.
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.