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

时间:2016-05-01 02:27:18

标签: c ubuntu bluetooth bluez

我在设置中的蓝牙适配器(在Ubuntu上)可以检测到我的AR Drone(MiniSpider)设备。但是使用simple Bluez code example来检测蓝牙设备,我无法检测到无人机设备。我的代码与前面提到的链接中的代码完全相同。我可以使用代码检测手机(如果手机已经可见)。

知道可能是什么问题吗?

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

  

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

1 个答案:

答案 0 :(得分:1)

您使用的代码段用于扫描经典蓝牙设备。这相当于在命令行中使用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)
{
    ...
}