iOS 核心蓝牙 : active connection to the same target peripheral in app and widget simultaneously?

标签 ios core-bluetooth simultaneous bluetooth-lowenergy

我想在我的应用程序及其小部件中以中央模式与我的外围设备保持持久的 BLE 连接。那么技术上可行吗?

原因如下:在应用程序中建立连接后,我们将其发送到后台,然后打开 today-widget - 小部件应继续与连接的外围设备一起运行。反之亦然:如果我们隐藏今天的小部件,启动应用程序 - 该应用程序应继续使用现有连接。

最佳答案

是的,如果您在后台启用蓝牙功能,您可以继续在后台处理 BLE 事件。只需选择您的主项目文件,然后选择目标,然后在“功能”选项卡上,打开“背景模式”并启用“使用蓝牙 LE 配件”。

在您的主应用中,您将有机会处理任何 BLE 事件,即使应用在后台也是如此。

需要注意的是 BLE 事件启动操作,因此请务必将要在后台执行的代码放在委托(delegate)方法中,例如 didUpdateValueForCharacteristic

您的代码将在您初始化 CBCentralManager 时指定的任何队列上执行。

小部件和应用程序不能共享 BLE 连接。您可以使用 Apple 建议的方法(NSUserDefaults 或键值观察)在应用程序和小部件之间进行通信,或者,您可以从小部件创建另一个 BLE 连接并通过它进行通信。

关于iOS 核心蓝牙 : active connection to the same target peripheral in app and widget simultaneously?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626816/

相关文章:

iphone - 在另一个线程中/同时解析 XML

ios - 用于发送电子邮件的网络服务

ios - CoreBluetooth 不缓存发现的服务和特征

iOS8 和 BTLE | CBCentralManager 无法找到外围设备

ios - 一段时间后设备断开连接且无法获取特征

java - 为什么 Char 不会打印,并且计数器超出了我的循环;

c - 为一个游戏同时运行两个循环 - C

ios - 使用Coredata保存Json字典

objective-c - UISearchBar 搜索两个数组

iphone - 如何dequeueReusableCellWithIdentifier : work?