我正在使用Xcode 7,我想了解如何在iOS9中使用BLE附件和CoreBluetooth框架測試「狀態保存和恢復」(請不要指出我已經找到this question,但我覺得有必要更深入地理解這一點)。CoreBluetooth:測試狀態保存和恢復
我需要應用程序才能自動從附件中傳輸一些數據,只有當用戶的手機處於範圍內時,以及該應用程序以前沒有運行過。
我試圖打破這三種情況反映了這個用例,即方案A,方案B和方案的不同變化C.
會有人能夠解釋我測試所需的基本步驟以下情景?
也做這些情況是否有意義?
情況A:
1 - 應用程序發現附件並存儲該附件信息
2 - 應用程序/用戶退出附件範圍
3 - 應用由用戶
殺死4 - 用戶在App未運行時重新輸入附件範圍。
5 - 預期事件:我希望狀態恢復到被激活(被稱爲CentralManager以及didFinishLaunchingWithOptions在AppDelegate中willRestoreState方法
在這裏,我應該能夠得到外設的列表。包括輔助設備,並決定我是否要連接到它
6 - 。如果我決定進行連接,然後我希望應用程序保持後臺運行(如後臺模式被激活)
我該如何測試這種情況?
場景B:
1 - 應用程序發現附件並存儲該附件信息
2 - 應用程序連接到附件,併發送請求至一個特性來開始傳送數據
3 - 應用正在從配件接收數據
4 - 應用程序/用戶退出附件範圍
5 - 應用程序進入後臺模式
6 - 用戶應用程序的同時在後臺模式下運行重新進入附件範圍。
5 - 預期事件:我希望狀態恢復到被激活(被稱爲CentralManager以及didFinishLaunchingWithOptions在AppDelegate中willRestoreState方法
在這裏,我應該能夠得到外設的列表。包括配件,並看到狀態是連接。我應該然後重新請求數據流(我認爲沒有辦法恢復前一個流,是否正確?)
6 - 應用程序應繼續流背景和基礎d
我該如何測試這種情況?
場景C:
1 - 應用程序發現附件並存儲該附件信息
2 - 應用程序連接到附件,併發送請求至一個特性來開始傳送數據
3 - 應用正在從配件接收數據
4 - 應用程序/用戶退出附件範圍
5 - 應用程序進入後臺模式
6 - 用戶殺死該應用
7 - 用戶再次進入附件範圍,而應用程序未運行
8 - 預期事件:我期望激活狀態恢復(willRestoreState在CentralManager中調用方法以及在AppDelegate中調用didFinishLaunchingWithOptions。
從這裏我應該能夠得到包括附件在內的外設列表,並重新連接並重新請求數據傳輸(如情景B所示)。
9 - 我希望應用程序保持在後臺運行(如後臺模式被激活)和應用程序應該在後臺繼續流
如何測試這個場景?
希望不是太混亂。
想知道你是否能找到你的問題的答案。我對同樣的事情很好奇。從[這裏](https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html#//apple_ref/doc/uid/TP40013257-CH7-SW5),我想它可能是可以實現的。 – Liangjun