Bluez Code 无法检测到蓝牙设备,但设置可以

Bluez Code cannot detect Bluetooth device but Settings can

我在“设置”中的蓝牙适配器(在 Ubuntu 上)可以检测到我的 AR 无人机 (MiniSpider) 设备。但是使用 simple Bluez code example 检测蓝牙设备,我无法检测到无人机设备。我的代码和前面提到的link中的代码完全一样。我可以使用代码检测到 phone(如果 phone 使自己可见)。

知道可能是什么问题吗?

hcitool lescan输出:成功找到无人机蓝牙设备

sudo hcitool lescan
LE Scan ...
A0:14:31:48:8C:EB RS_W082091
A0:14:31:48:8C:EB RS_W082091
A0:14:31:48:8C:EB RS_W082091

您使用的代码片段用于扫描经典蓝牙设备。这等同于从命令行使用 hcitool inq,在这种情况下,您可能无法检测到您的设备。

但是,AR Drone 似乎支持低功耗蓝牙 (BLE),而不是传统蓝牙。因此,使用查询方法您无法检测到它。如果您使用扫描 BLE 设备的代码,您将能够找到您的设备。您可以在下面查看 hcitool.c 的来源:-

https://github.com/aguedes/bluez/blob/master/tools/hcitool.c

然后您的起点将是使用 hcitool lescan 代码:-

static void cmd_lescan(int dev_id, int argc, char **argv)
{
    ...
}