Swift-蓝牙后台写入特性

Swift-蓝牙后台写入特性,swift,bluetooth,background,background-mode,ios-background-mode,Swift,Bluetooth,Background,Background Mode,Ios Background Mode,我正在Swift 5中开发一个应用程序,它连接到一个可穿戴设备上,该设备可以测量身体信息(温度、心率等) 为了测量这些信息,我必须在设备的一个特征中写入一个数据对象(并在激活通知的情况下在其他特征中接收信息),现在我必须每30分钟测量一次,因此我必须创建一个计时器,每30分钟重复一次,以执行该特征中的“写入”。(功能中的所有选项都已激活-蓝牙中心、蓝牙外围设备、后台处理、后台提取) 我在Stack Overflow中读了很多主题,有人说你不能在后台写BLE,还有人说你可以 在实现我读到的所有可能

我正在Swift 5中开发一个应用程序,它连接到一个可穿戴设备上,该设备可以测量身体信息(温度、心率等)

为了测量这些信息,我必须在设备的一个特征中写入一个数据对象(并在激活通知的情况下在其他特征中接收信息),现在我必须每30分钟测量一次,因此我必须创建一个计时器,每30分钟重复一次,以执行该特征中的“写入”。(功能中的所有选项都已激活-蓝牙中心、蓝牙外围设备、后台处理、后台提取)

我在Stack Overflow中读了很多主题,有人说你不能在后台写BLE,还有人说你可以

在实现我读到的所有可能性之前:是否可以每30分钟执行一个任务,以连接到设备,将一个特征的通知设置为true,并在后台模式下在一个特征中写入数据对象

如果回答是“是”,除了已经在前台工作的相应蓝牙方法外,我是否还需要执行任何代码


我没有附上我的BLEManager类(centralManager),因为它是Apple文档中的“标准”,但如果需要,请询问我,我会附上它。

可以在后台模式下使用CoreBluetooth:

请注意以下几个注意事项:

要在后台执行某些外围设备角色任务,必须在应用程序的Info.plist文件中包含带有蓝牙外围设备值的UIBackgroundModes键。当此键值对包含在应用程序的Info.plist文件中时,系统将唤醒应用程序以处理读取、写入和订阅事件

我想你可以直接用外设唤醒应用程序,但调度可能不起作用

当被唤醒时,一个应用程序有大约10秒的时间来完成一项任务

不知道你想做什么,但你的时间有限,所以也要记住这一点