我写的时候需要一定的蓝牙低功耗设备来到范围内得到信息的应用程序。 如果BLE装置得到注意我的应用程序只存储一个时间戳。
正如在WWDC 2012核心蓝牙视频表示,有两种可能的应用与蓝牙核心工作时,作用在后台模式:
事件Backgrounding
事件backgrounding也许正是与蓝牙低功耗设备交互时,大多数应用程序将使用。 此模式不允许直接通信的附件时,应用程序在后台运行,但是当它要与应用程序进行通信并提供来自附件的通知。 iOS版将保持连接到BTLE配件当你的应用程序是在后台将继续监控通知。 当连接BTLE附件有一个可用的通知,的iOS将通知附件想谈谈您的应用程序,允许用户加载应用程序,并与附件交互的用户。 由于许多设备需要省电,只有在确定的时间提供信息,将大大提高配件和iPhone 4S的电池寿命。
- 没有info.plist中的条目都需要这种模式。
会议Backgrounding
有次,其中一个应用程序必须即使它在后台运行的附件进行交互。 考虑一个运行应用程序,需要监视心脏速率的实时性。 有一个明确的开始和停止这种模式。 用户开始他们在App运行。 当运行被激活时,应用程序,直到运行完毕或停止心脏读取率信息。 会议backgrounding还允许扫描和连接到BTLE配件,而应用程序是在后台。 一个scanForPeripheralsWithServices或connectPeripheral呼叫将继续,即使该应用程序是在后台。 CoreBluetooth将继续监控发现或连接时,匹配您的应用寻找服务,并打电话给你的应用程序委托特定的外设或外设。 要留意,每次有BTLE外围或iPhone 4S使用的无线电,它消耗的各个设备可用功率。 使用基于会话backgrounding应用程序开发人员必须记住用电量。
- 会议backgrounding需要backgrounding模式进入到UIBackgroundModes,蓝牙中央,在您的应用程序的info.plist。
到现在为止我会话Backgrounding(与根据info.plist中的条目)。 该应用程序会询问的iOS检索所有已知的设备,然后给connect命令我正在寻找的设备。 我的应用程序在背景执行后,即使分钟后,连接回调来。
但是: - 假设 - 一小时应用进行了后悬挂。 这意味着,我的应用程序获取用户推出的下一次,它不能告诉,如果已经有感兴趣的BLE装置的任何踪迹。
所以我的问题是:是否有可能在我的应用程序,而无需用户交互甚至几天的时候一定BLE装置进来范围,所以我可以存储我的时间戳被发送到后台后得到通知?