CBPeripheralManager私は、いくつかの特性を持つサービスと周辺機器として設定されている iOS アプリを持っています。ユーザーがコントロール センターを開いて Bluetooth のオフとオンを切り替えた後、再接続を試みています。サービスが正常にアドバタイジングを再開したように見えますが、書き込み要求のコールバックを取得していません。電話がかかることを期待‑peripheralManager:didReceiveWriteRequests:していますが、Bluetooth が再びオンになると電話がかかりません。
この場合、何か特別なことはありますか? ドキュメントによるとCBPeripheralManager、周辺機器の状態が PoweredOff を下回った場合にのみ、明示的にアドバタイズを再開する必要があります。PoweredOff に移動してから PoweredOn に移動し、クエリを実行すると‑isAdvertisingが返さYESれ、サービスが既に追加されているため、サービスを追加すると例外が発生してクラッシュします。