CoreBluetooth 中是否存在 didLostPeripheral(或类似方法)
Does a didLostPeripheral (or similar method) exists in CoreBluetooth
CoreBluetooth 中是否存在与 didDiscoverPeripheral:
相反的 didLostPeripheral
方法?外围设备停止广告时调用的方法。我很确定答案是 no 但我宁愿错也不愿后悔。我没有在 CBCentralManagerDelegate
中找到任何类似的提及。
动机
这个想法是为了能够维护一个 active 外围设备列表来宣传特定服务
Post 脚本
我希望找到类似于 NSNetServiceBrowserDelegate, found in NSNetService 的委托方法,但这是一个具有不同目的的不同框架。
如您所料,答案是否定的。如果您连接到外围设备,那么当外围设备超出范围时,您将获得 didDisconnect
委托回调。
如果您的应用程序 运行 在前台,那么您可以使用 allowDuplicates
扫描键重复接收广告包。然后,您可以维护自己的所见外围设备列表。
一般的算法是这样的:
- 当看到外围设备时 (
didDiscover
) 将其添加到列表中,如果不存在并将年龄设置为 0
- 每秒迭代列表,增加年龄。删除任何年龄为 5
的外围设备
CoreBluetooth 中是否存在与 didDiscoverPeripheral:
相反的 didLostPeripheral
方法?外围设备停止广告时调用的方法。我很确定答案是 no 但我宁愿错也不愿后悔。我没有在 CBCentralManagerDelegate
中找到任何类似的提及。
动机
这个想法是为了能够维护一个 active 外围设备列表来宣传特定服务
Post 脚本
我希望找到类似于 NSNetServiceBrowserDelegate, found in NSNetService 的委托方法,但这是一个具有不同目的的不同框架。
如您所料,答案是否定的。如果您连接到外围设备,那么当外围设备超出范围时,您将获得 didDisconnect
委托回调。
如果您的应用程序 运行 在前台,那么您可以使用 allowDuplicates
扫描键重复接收广告包。然后,您可以维护自己的所见外围设备列表。
一般的算法是这样的:
- 当看到外围设备时 (
didDiscover
) 将其添加到列表中,如果不存在并将年龄设置为 0 - 每秒迭代列表,增加年龄。删除任何年龄为 5 的外围设备