Android / iOS 蓝牙低功耗 (BLE) 与多个服务的通信

Android / iOS Bluetooth Low Energy (BLE) communication with multiple Services

我有一个 iOS 应用通过以下方式宣传两个 BLE 服务(都是 主要):

peripheralManager.addService(containingService)
peripheralManager.addService(preciseService)
peripheralManager.startAdvertising([CBAdvertisementDataServiceUUIDsKey: [containingService.UUID, preciseService.UUID]])

我通过 LightBlue 应用程序验证了这两项服务都有广告。

我想在 Android 端做的是为广告“preciseService”的设备获取 ScanResult。对其进行过滤,但从未找到该设备。根本不过滤,找到了设备,但是在ScanRecord中方法getServiceUUIDs只有returns“[=23的UUID =]containingService".

我知道我可以通过连接找到所有其他服务 UUID。在我的应用程序中,我不想连接到设备。所以我的问题是,是否有人知道为什么在 ScanRecord 中只能找到两个宣传的主要服务之一?

非常感谢

我意识到这完全是关于添加两个或多个128位UUID的长度。添加一个 128 位和一个 32 位 UUID 工作正常。