2013-10-17 15 views
7

私はこの問題を調べましたが、誰もそれを持っていないようです。CoreBluetoothが繰り返し切断されています

私は2つのiPadsを持っています。 1つは常にフォアグラウンドにあるBluetooth周辺機器として機能しています。私は中心的な側面にもっと関心を持っているので、私はBLE中心のバックグラウンド対応のiPadを作成しました。

  1. 中央アプリが実行され、
  2. 周辺サービスをアドバタイズ(または範囲内に入る)をスキャンを開始
  3. 中央装置は、周辺に接続し、
  4. ペリフェラルは、広告(または葉を停止してスキャンを停止する:私のワークフローは以下の通りです。範囲)
  5. セントラルデバイスが接続を切断してスキャンを開始する
  6. 中央が前景か背景かにかかわらずステップ1〜5をシームレスに実行する

セントラルiPadアプリを実行すると、サービスが全期間アドバタイズされていても、手順3と5が10秒ごとに繰り返されます。これは、フォアグラウンドとバックグラウンドで発生します。切断時に

、私はこのエラーが出る:それは切断し続ける理由について

Error occurred while disconnecting peripheral: The specified device has disconnected from us. 

任意のアイデア?データが転送されていない場合、CoreBluetoothは接続をクリーンアップしますか?今、私の中心部は、周辺特性の一度限りの読書をしています。値は静的であるため、更新をサブスクライブしません。 ありがとうございます!

答えて

7

私の場合、解決策は、値が静的であるかどうかにかかわらず特性にサブスクライブすることでした。サブスクリプションを使用すると接続が維持されているように見えますが、フレームワークはバッテリ寿命を節約して接続を切断し、別の読み取りまたは書き込みを実行する前に手動で再接続する必要があります。

関連する問題