我正在使用 Xcode 7,我想了解如何使用 BLE 附件和 CoreBluetooth 框架在 iOS9 中测试“状态保存和恢复”(请不要说我已经找到了这个问题,但我觉得有必要了解更多深度)。
只有当用户的手机在范围内时,我才需要应用程序自动从附件传输一些数据,以防应用程序之前没有运行。
我试图在反映该用例的不同变化的三个场景中对此进行分解,即场景 A、场景 B 和场景 C。
有人可以向我解释测试以下场景所需的基本步骤吗?
这些场景也有意义吗?
情景A:
1 - 应用发现配件并存储配件信息
2 - 应用程序/用户退出附件范围
3 - 应用程序被用户杀死
4 - 用户在 App 未运行时重新进入附件范围。
5 - 预期事件:我希望激活状态恢复(在 CentralManager 中调用willRestoreState方法以及在 AppDelegate 中调用didFinishLaunchingWithOptions。
从这里我应该能够获取包括附件在内的外围设备列表并决定是否要连接到它。
6 - 如果我决定连接,那么我希望应用程序继续在后台运行(因为激活了后台模式)。
我该如何测试这种情况?
场景 B:
1 - 应用发现配件并存储配件信息
2 - 应用程序连接到附件并向特征发送请求以开始传输数据
3 - 应用程序正在从附件接收数据
4 - 应用程序/用户退出附件范围
5 - 应用程序进入后台模式
6 - 当应用程序在后台模式下运行时,用户重新进入附件范围。
5 - 预期事件:我希望激活状态恢复(在 CentralManager 中调用willRestoreState方法以及在 AppDelegate 中调用didFinishLaunchingWithOptions。
从这里我应该能够获取包括附件在内的外围设备列表,并看到状态为CONNECTED。然后我应该重新请求数据流(我假设没有办法恢复上一个流,对吗?)
6 - 应用程序应该在后台继续流式传输
我该如何测试这种情况?
场景 C:
1 - 应用发现配件并存储配件信息
2 - 应用程序连接到附件并向特征发送请求以开始传输数据
3 - 应用程序正在从附件接收数据
4 - 应用程序/用户退出附件范围
5 - 应用程序进入后台模式
6 - 用户杀死应用程序
7 - 用户在 App 未运行时重新进入附件范围
8 - 预期事件:我希望激活状态恢复(在 CentralManager 中调用willRestoreState方法以及在 AppDelegate 中调用didFinishLaunchingWithOptions。
从这里我应该能够获取包括附件在内的外围设备列表并重新连接到它并重新请求数据传输(如方案 B 那样恢复它)。
9 - 我希望应用程序继续在后台运行(因为激活了后台模式)并且应用程序应该在后台继续流式传输
我该如何测试这种情况?
希望不要太混乱。