我有一个连接到蓝牙外设的iOS应用程序(将其视为连接的按钮)。外设处于固定位置,因此不一定在iOS设备的范围内。我的应用程序旨在作为后台任务运行,并且外设会定期通知我的应用程序按钮按下。在后台保持iOS BLE应用程序的最佳实践方法
我发现iOS有时会因为(我相信)内存压力而杀死我的应用程序。我认为BLE状态保存和恢复将帮助我:
...通过重新启动被杀死的应用每当蓝牙连接到外围恢复,并压在外围的按钮。然而,这个帖子:
...(由Anton评论)似乎表明,状态恢复是一个有点片状和BT关闭后不能恢复状态/日或之后飞行模式等等。
这是BLE状态还原的情况。我是否浪费时间试图让它发挥作用?如果它能够工作,那么在任何地方是否有很好的示例实现?
如果我不能使用状态恢复,有没有其他的选择?
- 保持我的应用程序足迹小,所以它不太可能被iOS杀死?
- 将某种保持活动通信添加到保持应用程序活动的远程服务器?
- 为我的应用程序添加消息或VOIP等功能(我知道它需要通过应用商店批准才是合法的)。这将允许应用程序重新启动并重新建立BLE外设连接,还是唤醒只允许VOIP特定的API调用?
- 还有什么?
很明显,上面的列表不太可取得BLE状态恢复为我做的工作。任何意见不胜感激。
你在哪里看到关于切换飞行模式后不重新连接的意见?我也相当肯定,如果你有一个长时间运行的连接,你会在重新启动后重新启动。你真的试图实施国家恢复和有问题吗?我发现BLE很难在iOS上很好地使用,但在遇到任何问题之前我不会尝试解决它。 (当然,如果你的内存使用率很高,你应该继续努力,但这是完全独立的。) –
我相信我已经看到了开发人员在很多地方提到的飞机模式问题,包括这里:[link](https: //forums.developer.apple.com/thread/26798)(这与我在原始文章中的链接相同)以及我不清楚这些问题是否仍然存在或与旧版iOS相关。我试图让国家恢复工作,但看到一些负面的帖子,这让我想检查我没有浪费我的时间!任何链接到一个良好的工作解决方案将是伟大的! –
任何人都可以提出任何技术? –