私は Xcode 7 を使用しており、BLE アクセサリと CoreBluetooth フレームワークを使用して iOS9 で「状態の保存と復元」をテストする方法を理解したいと思います (この質問を既に見つけたわけではありませんが、これをもっと理解する必要があると感じています)。深さ)。
アプリが以前に実行されていなかった場合でも、ユーザーの電話が範囲内にある場合にのみ、アクセサリから一部のデータを自動的に転送するアプリが必要です。
これを、このユース ケースのさまざまなバリエーションを反映する 3 つのシナリオ、つまりシナリオ A、シナリオ B、およびシナリオ C に分類しようとしました。
次のシナリオをテストするために必要な基本的な手順を誰かが説明してくれますか?
また、これらのシナリオは理にかなっていますか?
シナリオ A:
1 - アプリはアクセサリを検出し、アクセサリ情報を保存します
2 - アプリ / ユーザーがアクセサリ範囲を終了
3 - アプリがユーザーによって強制終了されました
4 - アプリが実行されていないときに、ユーザーがアクセサリ範囲に再び入ります。
5 - 予想されるイベント: 状態の復元がアクティブ化されることを期待しています ( willRestoreStateメソッドが CentralManager で呼び出され、AppDelegateで didFinishLaunchingWithOptions が呼び出されます。
ここから、アクセサリを含む周辺機器のリストを取得し、それに接続するかどうかを決定できるはずです。
6 - 接続することにした場合、アプリはバックグラウンドで実行され続けると思います (バックグラウンド モードが有効になっているため)。
このシナリオをテストするにはどうすればよいですか?
シナリオ B:
1 - アプリはアクセサリを検出し、アクセサリ情報を保存します
2 - アプリがアクセサリに接続し、特性にリクエストを送信してデータ転送を開始します
3 - アプリはアクセサリからデータを受信しています
4 - アプリ / ユーザーがアクセサリ範囲を終了
5 - アプリがバックグラウンド モードになる
6 - アプリがバックグラウンド モードで実行されている間に、ユーザーがアクセサリの範囲に再び入りました。
5 - 予想されるイベント: 状態の復元がアクティブ化されることを期待しています ( willRestoreStateメソッドが CentralManager で呼び出され、AppDelegateで didFinishLaunchingWithOptions が呼び出されます。
ここから、アクセサリを含む周辺機器のリストを取得し、ステータスがCONNECTEDであることを確認できるはずです。その後、データ ストリームを再リクエストする必要があります (以前のストリームを再開する方法はないと思いますよね?)
6 - アプリはバックグラウンドでストリームを継続する必要があります
このシナリオをテストするにはどうすればよいですか?
シナリオ C:
1 - アプリはアクセサリを検出し、アクセサリ情報を保存します
2 - アプリがアクセサリに接続し、特性にリクエストを送信してデータ転送を開始します
3 - アプリはアクセサリからデータを受信しています
4 - アプリ / ユーザーがアクセサリ範囲を終了
5 - アプリがバックグラウンド モードになる
6 - ユーザーがアプリを強制終了
7 - アプリが実行されていないときに、ユーザーがアクセサリ範囲に再び入りました
8 - 予想されるイベント: 状態の復元がアクティブ化されることを期待しています ( willRestoreStateメソッドが CentralManager で呼び出され、AppDelegateで didFinishLaunchingWithOptions が呼び出されます。
ここから、アクセサリを含む周辺機器のリストを取得して再接続し、データ転送を再リクエストできるはずです (シナリオ B の場合と同じように再開します)。
9 - アプリがバックグラウンドで実行され続けることを期待しており (バックグラウンド モードが有効になっているため)、アプリはバックグラウンドでストリームを継続する必要があります
このシナリオをテストするにはどうすればよいですか?
希望はあまり混乱しません。