Bluetooth/BlueZ - o comando 'rfcomm listen' não termina

Bluetooth/BlueZ - o comando 'rfcomm listen' não termina

Tenho um problema com o comando rfcomm - depois de invocar, rfcomm listen 0 1 obtive (corretamente) Waiting for connection on channel 1. Então, estou me conectando a um dispositivo através do aplicativo Serial Bluetooth Terminal do Android e (corretamente) recebo e envio mensagens. Connection from FF:FF:FF:FF:FF:FF to /dev/rfcomm0O problema surge quando desconecto o telefone do dispositivo. Mesmo depois de alguns minutos, o comando rfcomm não termina. Eu testei em outro terminal, com resultados:

comando:

rfcomm

resultado:

rfcomm0: 00:00:00:00:00:00 -> FF:FF:FF:FF:FF:FF channel 1 closed [reuse-dlc release-on-hup tty-attached]

comando:

fuser rfcomm0

resultado:

/dev/rfcomm0: 675

comando:

dev# ps -aef | grep '675'

resultado:

root 675 649 0 07:36 pts/1 00:00:00 rfcomm listen 0 1 root 694 628 0 07:50 pts/0 00:00:00 grep 675

Minha versão do sistema operacional é Yocto 2.5

Agradeço antecipadamente por sua ajuda.

Responder1

Eu tive o mesmo problema no Raspberry. Acho que é um bug no utilitário rfcomm. Acidentalmente, encontrei uma solução alternativa:

sudo rfcomm watch hci0 -L 86400

Os argumentos vão um pouco errado no comando acima (-L 86400 deve ser executado primeiro). Produz um pequeno erro dentro do rfcomm, mas hocus-pocus! Se eu fechar a conexão no lado do Android, o servidor rfcomm também será encerrado. Isso é um milagre :)

informação relacionada