如何与MFI设备匹配EAACCOSSORY和CBPERIPHERAL



我有MFI设备,该设备将BLE用于控制和经典蓝牙进行音频流。

在应用程序中,我使用CoreBluetooth框架来扫描BLE和EAACCOSSORY框架来扫描经典蓝牙。如果尚未连接其经典蓝牙,我不希望目标设备的BLE连接。所以我需要知道哪个EAACCOSSORY对应于Target Cbperipheral。

我熟悉corebluetooth,有uuid字符串来识别cbperipheral。但是在Eaaccessory中看起来并不存在。我有一个想法,但不确定:也许固件可以配置 eaaccessory的序列号 cbperipheral的广告制造数据序列号,以便该应用程序可以检查它们是否相同。

剂量有人知道在应用程序侧和固件方面实现此操作的一般方法?

我真的认为2之间没有s的关系通常在BT中,您会使用MAC地址来识别BTLE侧的外围设备,因为MAC地址不再使用,因为第一个连接处的iOS为外围提供了自己的标识符。

您可以做的是在固件方面,通过以某种方式与特征相关的特征。
评论后更新
我知道,据我所知,最佳实践不存在。最糟糕的部分是您必须以不同的方式处理连接,这主要是由于iOS方面的连接方式。在BLE上,您可以选择不需要削皮或键合的未加密连接,在BT侧,我猜是需要键合。
最简单的流程可能是用户键入BT设备。进入应用程序并检测到连接的BT设备后,请使用扫描方法来检测BLE伴随设备,通过过滤设备曝光的特定服务ID,一旦您可以使用BLE名称过滤发现,而无需仍然没有制作ble名称连接。
ADV数据包的尺寸受到限制(29个可用字节),但您也可以使用扫描响应(31个字节),这些响应暴露了一些其他属性,例如制造商数据,这些数据将在字典中暴露(kCBAdvDataManufacturerData)。

。一旦知道这是正确的设备,您就可以启动连接,不需要配对或债券,但不加密(配对和债券将要求用户接受应用程序内的连接)。

最新更新