菜鸟教程小白 发表于 2022-12-12 12:47:39

ios - didDisconnectPeripheral 未调用 iOS Swift 3


                                            <p><p>我正在尝试断开与 BLE 设备的连接。我正在执行 <code>cancelPeripheralConnection()</code> 并且它从不调用 <code>didDisconnectPeripheral()</code>。
我将通知值设置为一个特征,因此在断开连接时我将其设置为 false。</p>

<pre><code>{

BLEOperations.sharedInstance.connectedDevice?.setNotifyValue(false, for: BLEOperations.sharedInstance.peripheralCharacteristics)

BLEOperations.sharedInstance.manager.cancelPeripheralConnection(BLEOperations.sharedInstance.connectedDevice!)

}
</code></pre>

<p>当用户尝试连接到新设备时,我正在尝试断开 connectedPeripheral。当前设备未断开连接,但新设备与旧设备连接。</p>

<pre><code>{

BLEOperations.sharedInstance.manager.connect(self.peripheralArray as! CBPeripheral , options: nil)

}
</code></pre>

<p>我在这里做错了什么?当设备连接丢失时,将调用该方法。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>当 CentralManager 在整个流程中只有一个实例时,它会正常工作。 </p>

<p>您可以创建一个 CentralManager 操作类(它是单例)并执行操作,而不是在 viewcontroller 中使用 centralmanagerdelegates。 </p>

<p>我做到了,效果很好。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - didDisconnectPeripheral 未调用 iOS Swift 3,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41889964/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41889964/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - didDisconnectPeripheral 未调用 iOS Swift 3