O que estou tentando fazer é um conceito simples: fazer com que o computador Linux seja um dispositivo escravo bluetooth que aceita conexões automaticamente (de um telefone). O objetivo geral é conectar-se automaticamente e transferir dados de um aplicativo de telefone para python no computador Linux. Aqui estão as etapas que considero necessárias:
Primeiro configurei o adaptador bluetooth usando hciconfig:
sudo hciconfig hci0 noauth
sudo hciconfig hci0 name thisdevice
sudo hciconfig hci0 lm SLAVE
sudo hciconfig hci0 lm ACCEPT
sudo hciconfig hci0 sspmode 1
sudo hciconfig hci0 reset
sudo hciconfig hci0 piscan
Preciso então de um agente bluetooth usando Bluetoothctl para fazer a autenticação:
bluetoothctl
discoverable on
pairable on
agent NoInputNoOutput
Preciso então me conectar usando meu telefone. Porém, para conectar, ainda preciso digitar YES no terminal dentro do bluetoothctl. (pede para confirmar o Pin correto). isso é um problema e anula todo o propósito da configuração NoInputNoOutput.
Então posso executar meu programa python que usa Pybluez e a função promote_service. Posso então me conectar a esse serviço a partir do aplicativo de telefone.
Esta é a ordem correta dos eventos? Como posso fazer com que o bluetooth seja autenticado automaticamente? (modificar o código do agente em bluez?)
Obrigado
Responder1
Não sou de forma alguma um especialista neste assunto, prefiro dizer que mal sobrevivi tentando exatamente a mesma coisa por 3 dias. Agora estou desistindo e jogando meu Raspberry Pi na pilha de todos os outros projetos inacabados.
No entanto, acho que meu passeio por este inferno pode ser valioso para você. Tente digitar agent off
antes de registrar um novo agente:
bluetoothctl
agent off
agent NoInputNoOutput
discoverable on
pairable on
A execução btmon
em um segundo terminal enquanto digita esses comandos deve mostrar um novo agente NoInputNoOutput sendo registrado.
Responder2
tente isto:
bt-agent -c NoInputNoOutput -d