2

iOS5.0でcorebluetooth.frameworkを使用してBluetoothLowEnergy心拍数モニターを動作させました。しかし、時々私は以下の問題を抱えています。

1)スキャンを開始すると(scanForPeripheralsWithServicesメソッドを使用)、iPhone Bluetoothを手動でオフにしてからオンにするまで、BLE(Bluetooth Low Energy)デバイスを検出できない場合があります。Bluetoothがオフになり、オンにならない場合にも、電話を再起動しなければならないことがありました。

2)以前にUUIDを保存したデバイスに接続しようとすると、デバイスに接続できた場合があります。つまり、didConnectPeripheralデリゲートメソッドが呼び出されましたが、 [peripheral DiscoverServices: nil]つまり、デリゲートメソッドdidDiscoverServicesでデバイスからデータを取得していません。このためにも私は電話を再起動しなければなりませんでした。

4

2 に答える 2

1

ここでアーカイブを確認してみてください:http: //lists.apple.com/archives/bluetooth-dev

見つからない場合は、そこに質問を送信してください。多くのAppleBluetoothエンジニアは、そのメーリングリストの質問に答えます。

于 2012-05-22T14:49:54.373 に答える
0

1)BluetoothLowEnergyとiPhoneのペアリングルーチンと関係があります。iPhoneは間隔ごとにIDを変更します。頻度はわかりませんが、変更されます。スレーブデバイスをリセット/再起動してみましたか?これは私にとってしばしばうまくいきます。スレーブデバイスのブロードキャスト期間も制限されています(例:20〜30秒)。

2)再度、スレーブをリセットしたことを確認します。デバイスを自分で作成したのか、心拍数ベルトを購入したのかはわかりませんが、ほとんどの場合、これが解決策です。ちなみに、didDiscoverServices実際にif-sentenceを飛び越えて、特定のサービスをチェックするという問題がありました。私が電話を再起動するまで、これはそれを自分で修正しませんでした。本当に奇妙な振る舞いですが、これに対する他の解決策はまだ見つかりません。

于 2012-07-08T12:16:41.280 に答える