我正在开发一个BLE应用程序,它要求我将BT设备连接到iPhone应用程序。
我可以扫描所有设备,用户也可以连接它。但问题是,如何在扫描后过滤设备(在显示连接之前),可以有多个BT设备(以防万一),用户可以从我们的应用程序连接其他BT设备,但它会没有用,但仍然是为了应用程序的完整性,我想只显示我想要的那些设备。我知道我们可以通过传递UUID来过滤设备,但等等,这些设备可以是世界各地的任何设备,所以我无法修复它。
有什么建议吗?
答案 0 :(得分:0)
您可以使用BLE设备的“Proximity”来获取范围。我为我的BLE设备使用了相同的场景。您可以获得BLE设备的接近度,并让用户知道哪个设备最接近。
将设备放置在距您的手机更近的位置(假设应用程序是为移动应用程序设计的)。您可以连接到最近的BLE设备并进行配置。希望它有所帮助。
答案 1 :(得分:0)
您可以根据MAC地址过滤设备(它是参数" BluetoothDevice" ScanResponse的一部分)。如果MAC地址包含组织唯一标识符(OUI),这将非常有用。请参阅此处:http://standards.ieee.org/develop/regauth/tut/eui.pdf了解更多信息。
通常前三个字节包含OUI,从而保证您可以轻松过滤掉属于组织的所有设备。因此,如果所有BT设备的前三个字节始终是固定的,那么这将是首选。在这种情况下,您可以过滤这些字节并仅查看您的设备。
编辑:因为在iOS上无法通过ScanResponseData直接获取MAC地址,您可以修改扫描响应的制造商特定部分,包括那里的MAC地址。