我知道,从文档来看,iOS应用程序可以在后台模式下扫描BLE设备。它还可以从外围设备中检索数据。
我该怎么处理这些数据。我的目的是将这些数据(当然是反序列化后)保存到核心数据中。我怎么能这样做?
如果无法做到这一点,推荐的方法是什么? (NSUserDefaults和与CoreData同步后?)
(iOS10,Swift3)
答案 0 :(得分:1)
在后台,注册到BLE事件的应用程序将在您注册的BLE相关事件发生时被系统唤醒。然后将按照官方苹果文档中的说明调用相应的委托方法。
将从BLE唤醒您的应用程序的事件是通知,如果您处于发现模式,新的连接事件(连接/断开连接),新的外围设备。
从应用程序被系统唤醒的那一刻起,您大约需要8秒钟来执行代码并响应BLE更新。在此时间窗口中,您可以执行任何类型的操作,包括与核心数据相关的作业。
请考虑阅读Apple发布的此文档,以帮助开发人员开发适用于BLE的精彩应用:https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html