4

iOS5.1を実行しているiPhone4Sのピアデバイスとの結合接続が確立されているシナリオを考えてみます。

そして、何らかの理由(ユーザーが開始したかどうかに関係なく)が原因で切断が発生します。

この場合、アプリが以前にペアリングされたデバイスに自動再接続する必要がある場合、Appleは、以前に接続またはペアリングされた周辺機器構造が満たされた状態で、コールバックdid_retrieve_peripheralを提供することになっているAPIretrieve_peripheralを公開します。

そして、このペリフェラルインスタンスを使用して、以前にペアリングされたuuidを比較し、一致する場合は接続(再接続)を試みることができます。しかし、ペリフェラルコールバックを取得したときにカウントが0になるため、ペリフェラルをフェッチできません。

私は何かが足りないのですか?

また、(周辺機器で発見されたサービス、特性など)を含む周辺機器の構造全体をアプリに複製または保存してみてください。これを再接続に使用しました。

4

3 に答える 3

6

retrievePeripheral API を使用するには、CBPeripheral UUID をどこかに保存する必要があります (私は CoreData を使用しています)。retrievePeripheral 呼び出しは、UUID の NSArray をパラメーターとして受け取ります。保存された UUID を retrievePeripheral 呼び出しに提供していないようです。didRetrievePeripherals コールバックが呼び出されると、CBPeripheral オブジェクトの配列が取得されます。その後、これらの周辺機器に再接続できます。これらをスキャンする必要はなく、周辺機器とペアリングする必要もありません。

于 2012-10-12T19:40:43.157 に答える
2

私は同じ問題を抱えており、1つの解決策があると思います:接続が失われた場合、マスターはスキャンして接続するのと同じ方法で周辺機器をスキャンする必要があり、スレーブはアドバチシン状態に移行する必要があり、両方が特性サービスuui​​dと特性を認識する必要があります再びサービス。

これが私が再接続を試みる方法です。

もちろん、いくつかの機能を使って自分のやり方でリフレッシュする必要があると思います

于 2012-07-20T15:28:29.703 に答える