ios - 在后台模式下连接的外围设备(核心蓝牙)

标签 ios swift bluetooth background core

我正在尝试实现以下场景:

  • 打开应用程序并连接到 BLE 外围设备。 工作
  • 将应用程序发送到后台并保持连接。 工作
  • 关闭 BLE 外设,应用会收到断开连接通知。 工作
  • 打开 BLE 外围设备,应用会收到断开连接通知。 工作
  • 再次关闭 BLE 外围设备。 工作
  • 等待 2 天,让该应用程序在后台运行并打开 BLE 外围设备,但该应用程序什么也不做。 不工作

我怎样才能实现这最后一步? iOS 会在需要时终止后台应用程序,但是有没有办法在发现以前连接的外围设备时收到通知?我阅读了一些有关 CB 状态恢复的内容,但我真的不知道这是否会解决这种情况。

最佳答案

核心蓝牙状态保存/恢复正是您想要的。如果您的应用程序被暂停,它会在外围设备连接/断开连接或通知到达时启动您的应用程序。但是,如果出于任何原因重新启动蓝牙,您的应用程序将停止被唤醒的方式被设计破坏。例如,如果用户切换蓝牙或飞行模式,或者手机重启,蓝牙崩溃(时不时发生)。

关于ios - 在后台模式下连接的外围设备(核心蓝牙),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37295639/

相关文章:

iphone - Cocos2D CCSprite 对象移动太多

ios - 类型 'ProfilesTableViewController' 不符合 Xcode 6 GM 种子中的协议(protocol) 'UITableViewDataSource'

ios - ScrollView Insets 不调整 KeyboardHide 功能 (SWIFT3)

ios - 如何让我的投票系统代码与 Parse 一起使用?

ios - 找不到 IBeacon

android - 在android中使用蓝牙发送文件

ios - 应用程序崩溃但设备上没有崩溃日志

ios - 当应用程序未运行时处理推送通知(应用程序被杀死)

swift - 如何在退出前终止进程?

ios - 检测 iPhone 何时连接到任何配对的汽车