1

我正在将 Android BLE 用作连接到以 Nordic NRF51 为中心的自定义设备的外围设备。该项目需要 Android 外围设备连接到两个 NRF51 中央设备。

Android 正在宣传两种不同的广告 UUID,一种用于左侧,另一种用于右侧 Nordic NRF51 设备。理想情况下,我希望两个 Nordic Central 同时连接到 Android。

我有两个主要问题。

首要问题。Android可以很好地获得两个连接。当 Android 发送通知或 Android 作为中央写入请求的结果返回回复时,会出现此问题。当两个 Central 都连接时,通常通知和发送回复都有效。我确认北欧中央没有收到通知,也没有收到回复。有没有人在 Android 作为同时支持多个连接的外设方面有经验?我已经尝试了两个 BluetoothGattServer 实例(每个设备一个)以及一个 BluetoothGattServer 实例,并且基于连接的设备,我可以判断该事件是针对哪个 Central 并正确处理它。它正在向写入请求发送通知或发送回复,有时它不会从 Android 发送。我在 GattServerCallback 事件处理程序上使用同步方法。

第二期。由于第一个问题,我现在一次只宣传一个 UUID。这个想法是在两个广告 UUID 之间切换,因此一次只有一个连接。现在的问题是切换广告。大约 1 次 3 次,当我开始用第一个 UUID 及其名称(LFDroid)做广告时,它似乎实际上是在短暂(1 或 2 秒)用它的名称(RTDroid)宣传第二个 UUID,然后宣传所请求的内容。请注意,第二个 UUID 广告在上一次切换时停止。几乎看起来当我要求做广告时,它开始用最后公布的 UUID 和名称做广告,然后迅速公布所请求的内容。现在这会导致问题,因为两个 Nordic Centrals 都看到了广告并进行了连接。

任何建议,将不胜感激。

4

0 回答 0