7

Core Bluetooth で、デバイスに接続した後、デバイスの電源をオフにすると、デバイスが切断されます。しかし、デバイスの電源を再度オンにすると、didDiscoverPeripheral再度呼び出されることはありません。デバイスに再接続するにはどうすればよいですか?

4

4 に答える 4

15

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

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

于 2012-11-16T09:55:12.630 に答える
4

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

于 2012-11-08T15:33:52.960 に答える
2

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

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

于 2013-01-14T22:05:35.570 に答える