我在快速检测附近蓝牙设备的名称(人名,而不是 BTADDR)时遇到问题我在这里找到了一个非常有趣的基于 Python 的项目 [http://code.google.com/p/python-bluetooth-scanner/]但问题基本上是,虽然寻找 BTADDR 和 RSSI 很快,但检测设备的“人”名需要更长的时间(即使他们说它应该在代码中工作)
我知道我可以通过以下方式查找名称:
- 简单的“hcitool scan”控制台命令,速度很慢
- 模块 PyBlueZ 的 bluetooth.lookup_name(address) 方法
- 如项目中所写,报告如下
-
sock = bluetooth.bluez._gethcisock(device)
timeoutms = int(timeout * 1000)
try:
name = bluetooth._bluetooth.hci_read_remote_name( sock, address, timeoutms )
except bluetooth._bt.error, e:
print e
logger.debug("Lookup Failed")
name = None
sock.close()
return name
简要介绍:系统使用 2 个加密狗来检测附近的 BT 设备,如果我让它们查找名称,它们会花费更多时间因此保持锁定状态,当发现新设备时,设备仍会锁定在查找以前的名称整个软件挂起。我在 WindowsXP 环境中的 VirtualBox 和几个 BT 2.1 加密狗中运行 Ubuntu 10.10。
除了创建一个“未命名”设备列表之外,一旦我的加密狗完成了以前的加密狗,就可以查找这些设备。你知道我有什么方法可以更快地做到这一点吗?