Некоторые опыты. Используются bluetoothd, bluetoothctl (стандартные от bluez-5.50), bt-agent (от bluez-tools-5.37), bt-scan и bt-browse. Запускаю bt-agent в консоли:
# bt-agent
Agent registered
Default agent requested
Device: 00-11-67-6A-05-5D (00:11:67:6A:05:5D)
Enter passkey: 0000
unregistering agent...
(здесь полный вывод)
Одновременно во второй консоли:
# bt-scan
Scanning ...
00:11:67:6A:05:5D "SPARKLE" AV 0
# bt-browse 00:11:67:6A:05:5D
Browsing 00:11:67:6A:05:5D ...
Failed to connect to SDP server on 00:11:67:6A:05:5D: Connection refused
Channel 2 "Headset" 1108
Channel 1 "Handsfree" 111e
# bluetoothctl connect 00:11:67:6A:05:5D
Attempting to connect to 00:11:67:6A:05:5D
[CHG] Device 00:11:67:6A:05:5D Connected: yes
Connection successful
#
После ввода команды "bt-browse" в первой консоли появляется приглашение "Enter passkey:" и после ввода кода во второй консоли появляется список сервисов. контакт устанавливается легко и просто через bluetoothctl. Проверил, звук идёт.
Вот бы вместо первой консоли сделать всплывающее окно ввода.