2012-11-08 27 views
5

コアのBluetoothでは、デバイスに接続した後、デバイスの電源を切ってデバイスを切断します。しかし、再びデバイスの電源を入れると、もう一度didDiscoverPeripheralが呼び出されることはありません。もう一度デバイスに再接続するにはどうしたらいいですか?コアのBluetoothで切断した後にデバイスに再接続する方法

答えて

12

cancelPeripheralConnectionでデバイスを切断すると、didDisconnectPeripheralデリゲートメソッドが呼び出されます。しかし、iOS 6.0からデバイスは約40〜50秒(またはそれ以上)接続されたままなので、その時間枠ではdidDiscoverPeripheralは呼び出されません。もう一度 "発見"したい場合は、retrieveConnectedPeripheralsメソッドを呼び出すだけで、didRetrieveConnectedPeripheralsの参照が得られます。

ただし、デバイスのUUIDを保存し、それを使用してretrievePeripheralsメソッドに再接続することをお勧めします。これにより、didRetrievePeripheralsが呼び出され、connectPeripheralに再接続できます。これは、デバイスに再接続する最速の方法です。この場合、スキャンは必要ありません。

+0

私はEAAccessory Frameworkで同じものを探しています。出来ますか?もし誰でも私に "どのように"指示することができますか?前もって感謝します...:) –

2

scanForPeripheralsWithServicesでスキャンすると、通常は特定のデバイスアドレスに対して1回だけ通知されます。これを変更して、CBCentralManagerScanOptionAllowDuplicatesKeyオプションを指定して重複を報告することができます。または、タイムアウトを使用して他のデバイスの接続が切断されたことをアプリに検出させ、スキャンを再開することもできます。

2

CoreBluetoothでは、すべての管理はアプリケーションレイヤーによって行われます。 あなたのケースでは、同じイベントではなく、切断イベントを待機し、周辺機器を再接続することです。 接続方法は安価で、範囲内に戻ったときにデバイスに再接続することを保証します。

明示的にデバイスを切断すると、同じ切断イベントが発生したが、再接続メソッドを呼び出す必要はないことに注意してください。

関連する問題