我正在使用Xcode 7,我想了解如何使用BLE附件和CoreBluetooth框架在CoreBluetooth中测试“状态保存和恢复”(请不要说我已经找到了this question,但我觉得需要更深入地理解这一点)。
我需要应用程序自动传输一些数据从附件时,只有当用户的手机在范围内,也是为了防止应用程序之前没有运行。
我试图在三个反映这个用例不同变化的场景中分解这一点,即场景A、场景B和场景C。
有人能解释一下测试以下场景所需的基本步骤吗?
也认为这些场景有意义吗?
我如何测试这个场景?
我如何测试这个场景?
我如何测试这个场景?
希望不是太令人困惑。
发布于 2016-02-09 12:15:29
对于场景A,我怀疑你能做任何事情。如果用户通过双击Home按钮并滑动应用程序来杀死你的应用程序,该应用程序就会消失,不再参与所有这些花哨的蓝牙聊天。这款从未发布过的应用也是如此-- iOS不会告诉它任何事情,也不会试图唤醒它。
在场景B中,您很可能不需要处理willRestoreState,因为现代智能手机(5s,6)即使在上面发布了大量的重型应用程序,也不会杀死您挂起的应用程序。当你离开配饰范围时,这个应用程序就会悄然断开。然后,如果您指示它立即开始扫描附件(在didDisconnectPeripheral),它将这样做了很长时间。不经常,但还是。因此,当您再次进入附件范围时,iPhone将最终连接到它并触发所有所需的回调。willRestoreState似乎只适用于iPhone 4,可能是iPhone 5,但我并没有很长时间使用这个功能来完全确定。
如果您确实需要测试willRestoreState场景,可以将本地通知添加到didFinishLaunchingWithOptions和willRestoreState,以确保它们被触发,以及( B)用Xcode运行应用程序,然后按CMD+停止。或单击Xcode中的方形按钮。这将导致应用程序以与系统在内存问题上杀死它的方式相同的方式终止,因此您应该看到您的通知。从现在开始,您可以编写代码、添加日志语句并观察设备日志中发生的情况。
另一种测试状态恢复的方法是点击按钮后调用kill(getpid(), SIGKILL);。
场景C-抱歉,同样的故事。如果用户故意杀死你的应用程序,你就完蛋了。告诉他别这么做。
https://stackoverflow.com/questions/33122242
复制相似问题