Начал изучать как работает bluetooth в linux. Меня смутило, что автор C библиотеки в своем примере, довольно таки вольно обходится с bluetooth. Как оказалось автор то в целом прав только не до конца. Действительно можно подключаться к устройству без всяких проблем через обычные сокеты или через rfcomm tty. Но когда случается отключение или подключение устройства как-то надо об этом узнать. И тут-то вступает в игру bluez. Но в отличии от подключения выясняется. Во первых bluez использует dbus. И только через него можно получить как информацию о адаптере в системе, затем от адаптера есть ли в списке устройств необходимое и узнать подключено оно или отключено. Документация по bluez "подробна" и сводится к описанию того что можно дернуть через dbus. А для узнавания доступно ли устройство в зоне досягаемости, предлагается ждать сигнала устройство найдено, для недоступно устройство пропало.
Что я могу про это сказать? Прелестно! Прелестно!