首页 > 解决方案 > 核心蓝牙:如果重新安装应用程序而没有在应用程序中正确断开BLE设备,则无法再次在应用程序中找到BLE设备

问题描述

当我在不断开 BLE 设备的情况下重新安装应用程序时,手机会保持连接,因此当我重新安装应用程序并扫描 BLE 设备时,最后一个连接将出现在操作系统级别,而不是应用内级别。如果之前未在应用程序上正确断开连接,这将导致我无法发现 BLE 设备。我的测试人员坚持认为,如果我重新安装应用程序,无论如何我都不应该看到连接并发现 BLE 设备。

如果我知道 UUID 和服务,我可以在应用程序中检索 BLE 设备连接,但正如我在文档中看到的那样,没有这些是不可能的。有没有其他方法可以解决这个问题?

标签: swiftobjective-cxcodecore-bluetooth

解决方案


这正是retrieveConnectedPeripherals(withServices:)目的。这将返回已经连接(在操作系统级别)的外围设备,这些外围设备宣传特定的服务列表。

您仍然需要调用connect返回的外围设备。在这种情况下,“连接”是指“连接到应用程序”,而不是“连接到设备”。文档将这些“应用程序”连接称为“本地”。


推荐阅读