【问题标题】:Background Bluetooth with iOS deviceiOS 设备的后台蓝牙
【发布时间】:2015-01-26 01:16:59
【问题描述】:
我正在开发一个蓝牙外围设备以与我的 iOS 设备配合使用。我需要让 iOS 应用程序在后台接收数据并处理这些数据。通过 Apple 的 CoreBluetooth 框架,我可以看到如何使用后台执行模式。现在为了省电,我希望iOS设备只在某个时间连接到蓝牙外围设备(不需要用户交互)。我查看了 iOS 上的本地通知,它的功能非常有限,并且认为它不能满足我的需求。
那么有没有办法在下午 6 点唤醒应用程序并要求应用程序开始扫描蓝牙设备?然后在连接设备后执行其他代码?所有这一切都无需用户交互。
任何建议将不胜感激!
谢谢!
【问题讨论】:
标签:
ios
bluetooth
core-bluetooth
【解决方案1】:
在 iOS 中,您无法真正安排在特定时间发生的操作(除了本地通知,正如您所说,这不是您需要的)。
您可以使用后台获取模式定期让您的应用检查新数据。您可以为应用的唤醒频率设置一个间隔(尽管这只是 iOS 的指南,并非严格的时间表)。
当 iOS 调用您的应用程序委托performFetchWithCompletionHandler 方法时,您可以检查当前时间并决定是否要传输数据。如果没有,那么您可以快速返回UIBackgroundFetchResultNoData。如果您确实获得了新数据,那么您可以在返回 UIBackgroundFetchResultNewData
之前检索它