无需配对即可获取设备位置的蓝牙库

Posted

技术标签:

【中文标题】无需配对即可获取设备位置的蓝牙库【英文标题】:Bluetooth library to get a device location without pairing 【发布时间】:2016-03-30 10:39:19 【问题描述】:

我正在寻找一种方法来进行蓝牙设备扫描并获取所有在其距离内可发现的设备。如果可以的话,我可以在不配对的情况下存档吗?

我假设 iBeacons 使用了类似的逻辑,其中应用可以在不与信标配对的情况下获得与信标的距离。

【问题讨论】:

请注意,iBeacon 无法判断实际距离,只能判断您是否在 iBeacon 周围。 【参考方案1】:

您使用的是 linux/Bluez 吗?您可以做的一件事是扫描带有一些自定义代码的设备或

hcitool scan

然后你只需要使用 hcidump 或类似的东西进行监控,你就可以根据 RSSI 值获得相对距离位置。这是一个示例输出:

hcidump -a
< HCI Command: Inquiry (0x01|0x0001) plen 5
lap 0x9e8b33 len 8 num 0
> HCI Event: Command Status (0x0f) plen 4
Inquiry (0x01|0x0001) status 0x00 ncmd 1
> HCI Event: Extended Inquiry Result (0x2f) plen 255
bdaddr 11:22:33:44:55:66 mode 1 clkoffset 0x129e class 0x7a020c rssi -89

当然,您可能希望进行扫描循环,以便不断获得 RSSI。

【讨论】:

以上是关于无需配对即可获取设备位置的蓝牙库的主要内容,如果未能解决你的问题,请参考以下文章

无需用户确认的蓝牙配对

是否可以连接蓝牙设备,而无需在 iOS 中配对?

手机蓝牙怎样配对

如何获取蓝牙配对设备的设备名称?

Linux 上 C blueZ 中的蓝牙配对

iOS Swift 将基本心率数据作为广播消息探索,无需配对