在将我的一些设备更新到 Android 7 后,我注意到一个奇怪的 BLE 行为。基本上,Android 7 似乎需要更长的时间来关闭连接,导致之前连接到 Android 的 BLE 设备在重新连接时失败。更具体地说,Android 正在返回在 onServicesDiscovered() 回调中发现的服务的空列表。看来,在调用 close() 后,我需要让 BLE 设备开机约 2 秒钟,以便正确断开它与 Android 设备的连接。在以前的 Android 版本中,我们几乎可以立即关闭 BLE 设备,它会重新连接到 Android,而不会出现任何问题。有谁知道 Android 7 BLE 堆栈发生了什么变化导致了这种情况?让 BLE 设备等待额外时间只是为了彻底断开连接似乎是错误的。