我正在开发一个iOS蓝牙LE应用程序。首先,我将IOS (中央)与我的蓝牙芯片(外围设备)配对。
1)发现外围设备。2)与周边连接。3)获取服务和特征。( 4)能够根据特征读取数据和写入数据。5)保存外围设备6)与外围设备断开连接
当我第二次运行该应用程序时,它会自动连接到外围设备,并从特征中写入和读取数据,并与其断开连接。应用程序在后台工作10分钟。
我想在后台运行这个应用程序。也就是说,我想每6小时调用一次在后台连接、写入和读取值的方法。这个是可能的吗?我的应用程序在后台只工作10分钟。任何建议都会有很大帮助。
发布于 2014-09-26 09:49:30
首先,您需要确保添加了:
<key>UIBackgroundModes</key>
<array>
<string>bluetooth-central</string>
<string>bluetooth-peripheral</string>
</array>它将允许您的应用程序在后台运行。
然而,这将工作如下:它将允许您的应用程序“唤醒”任何蓝牙事件,并运行方法,您喜欢启动当您的应用程序得到任何蓝牙活动。
例如:
didDiscoverPeripheral触发(连接/读/写等)。didUpdateValueForCharacteristic回调将再次被调用,因此您可以从这里调用方法,仍然在后台运行。这些设想不应限于10分钟的时间范围。
但是,我注意到,如果您在后台模式下运行其他东西(例如:循环),并且经过10分钟,您的应用程序可能会从后台被杀死,所以即使是上面提到的回调也无法工作。
因此,要回答您的6小时问题:如果您的BTLE设备每6小时启动一些BLE操作来唤醒您的应用程序,这是可能的。OTherwise我不确定你能不能从应用程序(ios)那开始你的活动。
https://stackoverflow.com/questions/26054947
复制相似问题