ios - 应用程序处于后台蓝牙模式时如何保存数据?

标签 ios swift core-data bluetooth-lowenergy core-bluetooth

我从文档中了解到,iOS 应用程序在后台模式下可以扫描 BLE 设备。它还可以从外围设备检索数据。

问题

我能用这些数据做什么。我的目的是将这些数据(当然是在反序列化之后)保存到核心数据中。我该怎么做?

如果这不可能,推荐的方法是什么? (NSUserDefaults 和与 CoreData 同步后?)

(iOS10, Swift3)

最佳答案

在后台注册到 BLE 事件的应用程序将在您注册的 BLE 相关事件发生时被系统唤醒。然后将按照苹果官方文档中的说明调用适当的委托(delegate)方法。

将从 BLE 唤醒您的应用的事件是通知、新外围设备(如果您处于发现模式)、新连接事件(连接/断开连接)。

从应用程序被系统唤醒的那一刻起,您有大约 8 秒的时间来执行您的代码并响应 BLE 更新。在此时间窗口中,您可以执行任何类型的操作,包括与核心数据相关的作业。

请考虑阅读 Apple 发布的这份文档,以帮助开发人员开发适用于 BLE 的出色应用:https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

关于ios - 应用程序处于后台蓝牙模式时如何保存数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42504409/

相关文章:

swift - 使用属性 'CGRectGetWidth' 时出错,它说它已替换为 'CGRect.width'

ios - CoreData 谓词 ANY + AND 与多对多关系

ios - RKManagedObjectRequestOperation objc_msgSend 期间 RestKit 崩溃

ios - MeasurementFormatter 显示英尺和英寸

ios - 是否可以在 siri 快捷方式 intentdefinition 文件中添加自定义类别?

ios - 如何清除 iOS 中 UIWebViews 的 localStorage

iOS swift : Firebase Remote Config fetch values

ios - AdMob 在已发布的应用程序中显示测试插页式广告

ios - 如何将 SwiftUI View 放置在 UIKit (UIViewRepresentable) View 之上? (错误或错误?)

ios - NSManageObjectContext - 类不是键@count 的键值编码兼容