我正在使用iOS8中的CoreBluetooth编写应用程序,该应用程序使用该应用程序检测并连接到其他手机。我试图找出能够创建连接的最佳方式,同时这两个应用程序都是背景的,但在两个手机都是背景+锁定的情况下一直有困难。我遵循了这篇文章的建议:
How to detect nearby devices with Bluetooth LE in iOS 7.1 both in background and foreground?
当两部手机都背景+锁定时,我无法建立连接,但是我已经能够连接外围设备和中央部分后置+锁定的连接,然后解锁中央设备(中央仍在的背景)。当我解锁外设虽然没有任何反应。当它们背景但没有锁定时它也可以工作。
因此,为了在解锁“外围设备”时建立连接,我决定在两部手机上创建一个中央和外围设备,以便同时扫描和播放。无论哪一个发现另一个将首先停止扫描/广告和连接。我遇到了这个方法的问题,这些问题在以下两个问题中有详细说明:
Peripheral and central at the same time on iOS
iOS CoreBluetooth Simultaneous Peripheral and Central Managers
基本上,我认为当我的两个设备同时尝试相互连接时,他们会挂断尝试连接,并且永远不会在其中任何一个上调用didConnectPeripheral(这两个显示的最后一件事都是消息说他们正试图连接)。它偶尔会工作,所以我也有点困惑为什么连接存在概率性质。有没有人对如何处理这个问题有任何建议?如果有两个应用程序背景和锁定时建立连接的更好方法,请告诉我,因为这是我原来的问题。
谢谢!
答案 0 :(得分:1)
在Info.plist中声明bluetooth-central
和bluetooth-peripheral
background modes,以便在后台执行中央和外围角色。