Posso reiniciar o Bluetooth a partir do terminal?

8

Eu tenho um Galaxy S 2 enraizado (I9100) e queria saber se posso reiniciar o Bluetooth no meu telefone através do cliente de terminal no meu telefone.

Clyde Lobo
fonte

Respostas:

10

O seguinte comando do terminal deve ativar o Bluetooth via shell adb ou aplicativo Emulador de Terminal:

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

Na maioria das versões do Android, esse comando apresentará uma janela pop-up ao usuário pedindo para confirmar a solicitação para ativar o BT. Acredito que isso foi feito por motivos de segurança sempre que um aplicativo que não seja do sistema estiver alternando a BT.

Infelizmente, não encontrei uma maneira de desativar o BT por meio de um comando shell.

Com o WiFi, é muito mais fácil e não solicita permissão ao usuário:

su
svc wifi enable

ligará e

su
svc wifi disable

irá desligá-lo.

Chahk
fonte
Obrigado pela resposta. Vou tentar o mesmo. Você também pode listar o mesmo para o WiFi?
Clyde Lobo
Editou minha resposta com as informações de WiFi. Eu não encontrei uma maneira de desativar BT através de um comando de terminal embora :(
Chahk
6

no android.bluetooth.IBluetoothManager, existem alguns parâmetros

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, com dispositivo enraizado, se você deseja desativar o bluetooth no modo superusuário adb shell (su)

service call bluetooth_manager 8

se você quiser ligar o bluetooth novamente

service call bluetooth_manager 6
Jamy
fonte
utilização de um dispositivo que é HTC One com Android 4.4.2
Jamy
Confirme se está funcionando no Android 4.2.2
pevik 04/02
Service bluetooth_manager does not existno Android 4.1.2
davide
3

Ativar bluetooth:
service call bluetooth 3

Desativar bluetooth:
service call bluetooth 4

user38665
fonte
Eleitor negativo: você poderia ajudar a identificar o problema com esta resposta (após a edição)? Eles funcionaram no meu telefone root depois su- então tecnicamente nada AFAIK errado.
Narayanan
11
Ativar bluetooth: chamada de serviço bluetooth 3 Desativar bluetooth: chamada de serviço bluetooth 5 está funcionando no meu HTC Desire X
Anvesh Yalamarthy
11
service call bluetooth 5funciona no meu Android 4.2.1 para desativar o bluetooth.
Firelord
Em um "Galaxy Fame GT-6810P", os números corretos são 3 e 5.
davide
1

Isso funciona a partir de um shell:

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

Basicamente, ele faz com que o diálogo apareça e, em seguida, envia pressionamentos de teclas para aceitar o comando

disneysw
fonte
0

Minha solução funciona.

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

Observe que, ao executar o primeiro comando, ele salta uma janela solicitando que você selecione ALLOW.

Então você precisa do comando auto click.

Você pode obter a posição X, Y, ativando Opções do desenvolvedor-> Localização do ponteiro e toque no botão PERMITIR.

user3759386
fonte