Estoy ejecutando un Raspberry PI 3 sin cabeza, y quiero que acepte automáticamente los emparejamientos desde cualquier dispositivo.
Vi esta respuesta en una pregunta idéntica:
Aceptar automáticamente conexiones Bluetooth en un Pi 3
Pero parece estar un poco desactualizado y algunos de los comandos utilizados no parecen existir.
Estoy ejecutando la 2016-05-27-raspbian-jessie.img
imagen del sistema operativo.
bluetooth-agent
pero no estoy seguro.Respuestas:
Como el
bluetooth-agent
comando no existe en Jessie, la forma moderna es canalizar comandos relevantes abluetoothctl
. Según esta pregunta de SO , el siguiente script debería permitir el emparejamiento automático sin entrada manual de pin:fuente
No agent is registered
, parece que eldefault-agent
comando se ejecuta demasiado rápido. Cuando ingreso los comandos manualmente, no muestra este error, pero una vez que lo dejobluetoothctl
, cancela el registro del agente y falla el intento de conexión. Si salgobluetoothctl
corriendo, recibo un mensaje preguntando si confiar en la conexión, que no es loNoInputNoOutput
que esperarías ...NoInputNoOutput
que no es tanto una política de autorización, sino parte del protocolo bluetooth para descubrir qué tipo de mecanismos de autorización (por ejemplo, ¿se puede usar un pin?) Están disponibles.Acabo de usar una nueva instalación de
2016-09-23-raspbian-jessie-lite.img
para probarlo sin ninguna actualización adicional. Noapt-get update
noapt-get install bluez-utils
ni nada. Este comando único hace que el Pi sea reconocible y deseable. Sin un agente para controlar quién puede conectarse, simplemente le permite a cualquiera:fuente
Raspbian - Jessie
xxxxx.sh
fuente
Estaba enfrentando el mismo problema y encontré que este método funcionaba (RasPi 3, Modelo B, Raspbian 9 Stretch)
Estoy usando Raspberry Pi como un dispositivo IoT EDGE y lo necesitaba para aceptar solicitudes de par Bluetooth sin intervención. Tengo una aplicación de Android que comunica información de texto al Pi a través de Bluetooth y mi declaración de problema necesitaba cualquier dispositivo Android para conectarse.
En primer lugar, no estoy ejecutando ningún agente Bluetooth por separado (no Blueman, de hecho tuve que eliminarlo)
Editó el archivo .bashrc en
Se agregaron dos comandos a esto al final
piscan hace que Raspberry Pi Bluetooth sea reconocible
sspmode 1 habilita 'Secure Simple Pairing', que es el mismo tipo de método utilizado por sus auriculares o altavoces Bluetooth (básicamente dispositivos que no tienen una pantalla donde puede confirmar el PIN). Y dado que estos comandos están en .bashrc, se ejecutan en el arranque.
Ejecute la secuencia de comandos Bluetooth. Par. Aunque hay una ventana emergente que me pide que confirme, puedo comunicar mensajes desde y hacia Pi con mi aplicación
Nota: hci0 puede no ser el mismo en todas partes, podría ser hci1, hci2, compruebe ejecutando hciconfig en su CLI
Esto es casi como un artilugio, y no estoy seguro de si hay alguna repercusión desconocida, pero funciona. Cualquier mejora es apreciada
fuente
Puede echar un vistazo al código fuente de EcoDroidLink . Acepta conexiones Bluetooth sin necesidad de iniciar sesión.
EDITAR: Por demanda popular, aquí hay extractos de código del
edl_agent
módulo que hace que esto suceda.fuente