1

BTLE iOS デバイス間の通信に CoreBlueTooth フレームワークを使用していますが、奇妙な動作が見られます。これが私がやっていることです:

  1. iOS デバイス 1 (周辺機器): 書き込み可能な特性を公開します。
  2. iOS デバイス 2 (セントラル): 書き込み可能な特性をスキャンし、それにデータを書き込みます。
  3. iOS デバイス 1 (ペリフェラル): 書き込み要求を受け取ります。データの受信を確認するまでしばらく待ちます。
  4. iOS デバイス 2 (中央): 以下のデリゲートでコールバックを取得し、前述のエラーを受け取りました。

問題: ここで、API を呼び出して数秒で書き込み要求に応答すると、[iPeripheral respondToRequest:iRequest withResult:iStatus]すべて正常に動作し、Central で成功します。しかし、時間がかかると、ペリフェラルが書き込み要求に応答していなくても、エラー応答が返されます。

これは、数秒で何らかの接続が失われるのか、それとも既知の CB フレームワークの動作なのか、考えはありますか?

- (void)peripheral:(CBPeripheral *)iPeripheral didWriteValueForCharacteristic:(CBCharacteristic *)iCharacteristic error:(NSError *)iError 

Error Domain=CBErrorDomain Code=0 "Unknown error." UserInfo=0x183a6d70 {NSLocalizedDescription=Unknown error.}

Central と Peripheral の両方が iOS 7.0 で実行されています。

4

3 に答える 3

0

書き込みが確認されるまでの最大許容時間を超えている可能性があります。いくつかの異なる ack 時間をテストして、特定のしきい値を超えて確実に失敗するかどうかを確認してください。

于 2013-10-18T02:28:00.187 に答える
-1

iPhone 4 デバイスを使用している場合、このデバイスは BLE をサポートしていません。BLS は iPhone 4 以降でサポートされています。

于 2013-10-17T19:42:07.213 に答える