使用BlueZ,其中>>
是官方的Linux蓝牙堆栈
我想知道以下两种方法中的哪一种更适合检测附近设备的存在。更确切地说,我想定期扫描蓝牙设备(不是BLE =>没有发送广告包)。
我发现了两种检测方法:
1。)使用l2ping
# l2ping BTMAC
2。)使用hcitool
# hcitool name BTMAC
两种方法都起作用。
我想知道,哪种方法会耗尽扫描设备的更多电池?
查看解决方案#1(l2ping's source):
它使用标准套接字connect
调用连接到远程设备,然后使用send
命令向其发送数据:
send(sk, send_buf, L2CAP_CMD_HDR_SIZE + size, 0)
现在,
L2CAP_CMD_HDR_SIZE
为4,默认size
为44,因此总共发送了48个字节,并以L2CAP_ECHO_REQ
接收回来。
对于hcitool,我刚刚找到了入口点:
int hci_read_remote_name(int dd, const bdaddr_t *bdaddr, int len, char *name, int to);
我的问题:
hci_read_remote_name
也连接到远程设备并向其发送某种请求以获取其名称?使用BlueZ,这是官方的Linux蓝牙堆栈,我想知道以下两种方法中的哪一种更适合检测附近设备的存在。更确切地说,我要...
要回答您的问题:-