我正在开发iOS蓝牙LE应用程序 . 首先,我将IOS(中央)配对我的蓝牙芯片(外围设备)
1)发现外围设备 . 2)连接到外围设备 . 3)获得服务和特征 . 4)能够从特征中读取数据和写入数据 . 5)保存外围设备6)断开外围设备
当我第二次运行应用程序时,它会自动连接到外围设备,并从特征中写入和读取数据并断开连接 . 该应用程序在后台运行10分钟 .
我想在后台运行这个应用程序 . 那就是我想调用每6个小时在后台连接,写入和读取值的方法 . 这可能吗?我的应用程序在后台工作仅10分钟 . 任何建议都会有很大帮助 .
1 回答
首先,您需要确保添加:
到您的Info.plist,它将允许您的应用程序在后台运行 .
然而,这将工作如下:它将允许您的应用程序“唤醒”任何蓝牙事件并运行您希望在您的应用程序获得任何蓝牙活动时触发的方法 .
例如:
你可以在后台扫描蓝牙设备,一旦找到适合你的标准的东西,你可以运行代码,如
didDiscoverPeripheral
fires(连接/读/写等......) .您可以连接到设备并订阅特定特征的通知 . 一旦特征发生变化,你的应用程序在后台应该会收到通知并且会调用
didUpdateValueForCharacteristic
回调,所以你可以再次调用方法,仍然在后台运行 .也许你可以想到其他用例 . 我已经提到过这些场景,让您了解如何使用BTLE在后台运行 .
这些方案不应限于10分钟的时间范围 .
但是我注意到如果你在后台模式中运行其他东西(例如:一个循环)并且10分钟后你的应用程序可能会被后台杀死,所以即使是上面提到的回调也行不通 .
所以对于 answer 你的6小时问题:如果你的BTLE设备可能每6小时启动一次BLE动作就可以唤醒你的应用程序 . 另外,我不确定你是否可以从app(ios)方面开始你的活动 .