0

私が使用していて、アプリがフォアグラウンドまたはバックグラウンドになっている場合、またはデバイスの画面がまだオンになっている状態でデバイスがロックされている場合CoreBluetooth、コールバック メソッドが頻繁に呼び出されます。didDiscoverPeripheralしかし、画面がオフ/ブラックアウト (スリープモード) になるとすぐに、コールバックの頻度はほとんどなくなります。

何が原因でしょうか? デバイスのバッテリーがいっぱいで、Bluetooth がオンになっています。

この問題で私を助けてください。

ありがとう。

4

3 に答える 3

1

iOS がこのように動作する理由について、直接的な答えを見つけることができませんでした。これを解決する別の方法を見つけましたが。

CentralManager とともに PeripheralManager を実装しています。そうすれば、iOS デバイスの画面がオフになっていても、iOS デバイスを制御できます。

于 2014-05-23T18:13:09.993 に答える
0

tdevoy は正しいですが、もう少し楽観的な発見までの時間の値を示します。私の経験では、一方または両方のデバイスがバックグラウンド/サスペンド状態にある場合、検出に必要な時間は 1 ~ 2 秒だけです。

アプリがバックグラウンドにあるときにコールバックを受信しない場合は、コードが少し間違っている可能性があります。WWDC 2013 の CoreBluetooth ビデオでは、希望する動作を実現する方法について、エンジニアが明確な指示を提供しています。コールバックを受信できるようになったら、UILocalNotification をスケジュールして表示できます。これにより、テキスト メッセージの受信と同様の動作が得られます。

于 2014-05-18T13:50:28.740 に答える