我正在使用Android BLE作为外围设备连接到以Nordic NRF51为中心的自定义设备。该项目要求Android外设连接到两个NRF51中央设备。
Android正在宣传两个不同的广告UUID,一个用于左侧,另一个用于右侧Nordic NRF51设备。理想情况下,我希望两个Nordic Central同时连接到Android。
我有两个主要问题。
第一期。 Android可以很好地获得两个连接。当Android发送通知或Android发送回复作为来自中央的写请求时,会出现问题。当两个中央连接时,通常通知或发送回复都有效。我确认北欧中心没有收到通知也没有收到回复。有没有人在Android作为外围设备同时支持多个连接的经验?我已经尝试了两个BluetoothGattServer实例(每个设备一个)以及一个BluetoothGattServer实例,并且基于连接的设备,我可以告诉哪个中心事件是否正确处理。它正在向Write Request发送通知或发送回复,有时它不会从Android发送。我在GattServerCallback事件处理程序上使用了synchronized方法。
第二期。由于第一个问题,我现在一次只宣传一个UUID。这个想法是在两个广告UUID之间切换,因此每次只有一个连接。现在的问题是转换广告。大约1次3次,当我开始使用其名称(LFDroid)的第一个UUID进行广告时,它实际上是在宣传其名称(RTDroid)的第二个UUID(1或2个seonds),然后广告所请求的内容。请注意,第二次UUID广告在之前的切换时已停止。它几乎就像我要求做广告一样,它开始使用上次公布的UUID和名称进行广告,然后快速宣传所请求的内容。这现在引起了问题,因为两个北欧中央都看到广告和连接。
任何建议都将不胜感激。