我有一个使用Linux内核3.17的Linux嵌入式设备和一个WiLink 8无线模块作为蓝牙设备(使用UART)(参见Gumstix AirStorm-y)。另外,我安装了Qt 5.3.2和Bluez 4.101。
我的问题是当我执行我的Qt应用程序时,我无法使用QBluetoothLocalDevice
在我的蓝牙设备上获取信息。例如,QBluetoothLocalDevice::allDevices()
始终返回空列表,QBluetoothLocalDevice::address()
始终返回" 00:00:00:00:00:00"。如果我尝试执行聊天示例,则会收到'Cannot bind chat server to "00:00:00:00:00:00"'
错误。
我确定我的蓝牙设备已启动并运行:
hci0: Type: BR/EDR Bus: UART BD Address: 5C:31:3E:CE:C3:CE ACL MTU: 1021:6 SCO MTU: 180:4 UP RUNNING PSCAN RX bytes:657 acl:0 sco:0 events:37 errors:0 TX bytes:979 acl:0 sco:0 commands:37 errors:0
我也可以使用hcitools进行扫描
Dbus也正常运行,当我dbus-send --system --dest=org.bluez --print-reply / org.bluez.Manager.DefaultAdapter
时,我得到了:
method return sender=:1.5 -> dest=:1.12 reply_serial=2 object path "/org/bluez/1743/hci0"
在我的应用程序中,其他一切似乎都运行得很好(我有一个QTCP服务器和QFileSystemWatcher的文件管理器),它只是我无法使其工作的BLuetooth部分。