我正在使用 iOS8 中的 CoreBluetooth 编写一个应用程序,该应用程序可以检测并连接到使用该应用程序的其他手机。我试图找出能够在两个应用程序都在后台创建连接的最佳方法,但是在两部手机都在后台+锁定的情况下遇到了困难。我遵循了这篇文章的建议:
如何在 iOS 7.1 中在后台和前台使用蓝牙 LE 检测附近的设备?
当两部手机都在后台+锁定时,我无法建立连接,但是我已经能够建立连接,其中外围设备和中央都在后台+锁定,然后我解锁中央(中央仍在后台) . 当我解锁外围设备时,虽然没有任何反应。当它们处于后台但未锁定时,它也可以工作。
因此,为了在我解锁“外设”时允许建立连接,我决定在两部手机上创建一个中心和外设,以同时扫描和发布广告。无论哪个先发现另一个,都会停止扫描/广告并连接。我遇到了以下两个问题中详细介绍的这种方法的问题:
基本上,我认为当我的两个设备尝试同时相互连接时,它们会在尝试连接时挂断,并且从不会在其中任何一个上调用 didConnectPeripheral(它们显示的最后一件事是一条消息,表明它们是尝试连接)。虽然它偶尔会起作用,所以我也有点困惑,为什么连接具有概率性质。有没有人对如何解决这个问题有任何建议?如果在两个应用程序都在后台+锁定时建立连接有更好的方法,请告诉我,因为那是我最初的问题。
谢谢!