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.
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.
Respostas:
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.
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
Service bluetooth_manager does not exist
no Android 4.1.2
Ativar bluetooth:
service call bluetooth 3
Desativar bluetooth:
service call bluetooth 4
su
- então tecnicamente nada AFAIK errado.
service call bluetooth 5
funciona no meu Android 4.2.1 para desativar o bluetooth.
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
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.