2

私が使用しているシステムは、次のシナリオを使用しています。

  1. Bluetooth LE デバイスへの接続
  2. サービスと特徴を発見する
  3. コマンドを TX 特性に書き込み、応答を受け取る

上記は 90% の時間で問題なく動作します。ときどき、システムは 3 番目のステップが常に失敗する状態になります (ステップ 1 と 2 が成功したにもかかわらず、デバイスからの応答はまったくありません。アプリ / 電話 / BLE デバイスを再起動しても、これは解決しません。ブロックは一定です。何が解決しますか)問題は、iOS システム設定からデバイスを手動でペアリング解除することです.BLE 診断ログを見ると、次のようになります:

「pon.mar 7 21:27:30 設定 [380]: [CoreBluetooth] API の誤用: 接続状態でのみコマンドを受け入れることができます」

ただし、コマンドを送信する前にアプリをデバッグしたところ、100% 接続が確立され、サービスと特性が検出されました。何か案が?同様の問題に直面している人はいますか?

4

1 に答える 1

1

中央マネージャーのデリゲートに実装centralManager:didDisconnectPeripheral:error:しましたか?

周辺機器が切断されると通知されます。周辺機器が切断されたか、接続エラーが発生した可能性があります。接続状態の間は、常に読み取り/書き込み操作のみを行うようにしてください。

たぶん、この方法も見てください:centralManager:didFailToConnectPeripheral:error:

于 2016-03-09T08:29:02.623 に答える