OGeek|极客世界-中国程序员成长平台

标题: ios - 核心蓝牙 : testing state preservation and restoration [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:20
标题: ios - 核心蓝牙 : testing state preservation and restoration

我正在使用 Xcode 7,我想了解如何使用 BLE 附件和 CoreBluetooth 框架在 iOS9 中测试“状态保存和恢复”(请不要说我已经找到了 this question,但我觉得有必要更深入地了解这一点)。

只有当用户的手机在范围内时,我才需要应用程序自动从配件传输一些数据,以防应用程序之前没有运行。

我试图将其分解为反射(reflect)此用例不同变化的三个场景,即场景 A、场景 B 和场景 C。

有人能解释一下测试以下场景所需的基本步骤吗?

这些场景也有意义吗?

如何测试这种情况?


如何测试这种情况?


如何测试这种情况?

希望不会太困惑。



Best Answer-推荐答案


对于场景 A,我怀疑你什么都做不了。如果用户通过双击主页按钮并向上滑动应用程序来终止您的应用程序,那么该应用程序就会消失并且不再参与所有这些花哨的蓝牙聊天。同样适用于从未启动的应用程序 - iOS 不会告诉它任何内容和/或尝试唤醒它。

在场景 B 中,您很可能不需要处理 willRestoreState,因为现代智能手机(5s、6)似乎不会杀死您暂停的应用,即使在最重要的是。当您离开配件范围时,该应用程序将安静地断开连接。然后,如果您指示它立即再次开始扫描附件(在 didDisconnectPeripheral 中),它会这样做很长时间。不是太频繁,但仍然如此。因此,当您再次进入配件范围时,iPhone 最终会连接到它并触发所有必需的回调。 willRestoreState 似乎只与 iPhone 4s 相关,也许是 iPhone 5,但为了绝对确定,我很久没有使用这个功能了。

如果你真的需要测试 willRestoreState 场景,你可以 A) 将本地通知添加到 didFinishLaunchingWithOptionswillRestoreState 以确保它们是触发和 B) 在 Xcode 中运行您的应用程序,然后按 CMD+ 停止它。或单击 Xcode 中的方形按钮。这将导致应用程序终止,就像系统会在内存问题上终止它一样,因此您应该会看到您的通知。从现在开始,您可以编写代码、添加日志语句并观察设备日志中发生的情况。

另一种测试状态恢复的方法是在点击按钮后调用 kill(getpid(), SIGKILL);

场景 C - 对不起,同样的故事。如果用户故意杀死你的应用程序,你就完蛋了。告诉他不要。

关于ios - 核心蓝牙 : testing state preservation and restoration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33122242/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4