【发布时间】:2013-07-29 21:46:12
【问题描述】:
应用程序可以尝试同时连接到多个设备吗?
当应用调用“connectPeripheral”时,它会尝试连接一段未指定的时间,因为没有超时。但是,如果第二次调用“connectPeripheral”,它会取消之前的调用,还是应用程序会尝试同时建立两个单独的连接?
【问题讨论】:
标签: ios ios5 ios6 core-bluetooth bluetooth-lowenergy
应用程序可以尝试同时连接到多个设备吗?
当应用调用“connectPeripheral”时,它会尝试连接一段未指定的时间,因为没有超时。但是,如果第二次调用“connectPeripheral”,它会取消之前的调用,还是应用程序会尝试同时建立两个单独的连接?
【问题讨论】:
标签: ios ios5 ios6 core-bluetooth bluetooth-lowenergy
在我的测试中,我发现如果您在连接之前多次调用它,实际连接将花费更长的时间(并且实际上通常会阻止连接发生),但之后通常会正常运行。
但是,我注意到的一件大事是,如果您尝试在 didConnectPeripheral: 回调中调用 connectPeripheral:,您将陷入无限循环,并一遍又一遍地返回 didConnectPeripheral:。
长话短说,如果您不希望发生此类未定义的行为,则每个connectPeripheral: 调用都应与cancelPeripheralConnection:(或didDisconnectPeripheral:)调用匹配。
【讨论】:
connectPeripheral会有延迟时,是在同一设备上尝试多次调用connect,还是在多个设备上调用一次?还是两者都有?