首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CBPeripheralManager防止外围设备断开连接

CBPeripheralManager防止外围设备断开连接
EN

Stack Overflow用户
提问于 2017-12-27 20:55:21
回答 1查看 299关注 0票数 0

我在我的应用程序中同时使用了CBCentralManagerCBPeripheralManager。我使用PeripheralManager所做的工作很简单--它只是添加了一个具有可读性/通知特性的服务。就这样。

我通过CentralManager连接到已发现的CentralManager,然后取消连接:centralManager.cancelPeripheralConnection(peripheral)。我正确地得到了一个委托回调,外设被成功地断开了。然后,我删除了对该CBPeripheral的所有强烈引用。

困扰我的是,系统始终保持着与外围设备的连接。我可以在“设置”应用程序+我的connected设备中看到它的状态,这表明它仍在连接。

我使用内存图形工具发现的是,CBPeripheralManager对某些CBPeripheral有很强的引用,我认为这是我的设备。当我在我的应用程序中禁用CBPeripheralManager (没有向它添加任何服务)时,我就可以真正取消到外围设备的连接。

这是一种错误还是一种理想的行为?

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 01:40:28

到现在为止,你可能已经知道了这一点,但是苹果公司在取消连接后的一段短时间内保持连接正常。

从他们的文档

由于其他应用程序可能仍然与外围设备有连接,取消本地连接并不能保证底层物理链接立即断开。然而,从应用程序的角度来看,外围设备被认为是断开的,中央管理器对象调用它的委托对象的中央管理器:ddDisconnect外设:error:方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47998550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档