6

我正在使用 iOS8 中的 CoreBluetooth 编写一个应用程序,该应用程序可以检测并连接到使用该应用程序的其他手机。我试图找出能够在两个应用程序都在后台创建连接的最佳方法,但是在两部手机都在后台+锁定的情况下遇到了困难。我遵循了这篇文章的建议:

如何在 iOS 7.1 中在后台和前台使用蓝牙 LE 检测附近的设备?

当两部手机都在后台+锁定时,我无法建立连接,但是我已经能够建立连接,其中外围设备和中央都在后台+锁定,然后我解锁中央(中央仍在后台) . 当我解锁外围设备时,虽然没有任何反应。当它们处于后台但未锁定时,它也可以工作。

因此,为了在我解锁“外设”时允许建立连接,我决定在两部手机上创建一个中心和外设,以同时扫描和发布广告。无论哪个先发现另一个,都会停止扫描/广告并连接。我遇到了以下两个问题中详细介绍的这种方法的问题:

在 iOS 上同时使用外设和中央

iOS CoreBluetooth 同时外设和中央管理器

基本上,我认为当我的两个设备尝试同时相互连接时,它们会在尝试连接时挂断,并且从不会在其中任何一个上调用 didConnectPeripheral(它们显示的最后一件事是一条消息,表明它们是尝试连接)。虽然它偶尔会起作用,所以我也有点困惑,为什么连接具有概率性质。有没有人对如何解决这个问题有任何建议?如果在两个应用程序都在后台+锁定时建立连接有更好的方法,请告诉我,因为那是我最初的问题。

谢谢!

4

1 回答 1

1

在 Info.plist 中声明bluetooth-centralbluetooth-peripheral 后台模式以在后台同时扮演中央和外围角色。

于 2015-04-15T09:24:27.827 回答