2 つの iOS デバイス間で Bluetooth 接続をセットアップしようとしています。アイデアは、1 つのデバイスがサービスを提供し、複数のデバイスがそれに接続するというものです。
デバイス A (サービス): ユーザーがプレゼンテーションをスライドします。
デバイス B (複数のクライアント): ユーザーはプレゼンテーションを視聴し、対話はありません
私の理解では、サービスを提供するものはそれをアドバタイズし、CBPeripheralManager を作成して CBPeripheralManagerDelegate -> デバイス A を実装することにより、それぞれ周辺機器にする必要があります。
反対側には、CBCentralManager を使用して周辺機器をスキャンし、CBCentralManagerDelegate を実装する複数の中央デバイスがあります。接続が確立された後、CBPeripheral クラスと CBPeripheralDelegate -> デバイス B を使用して、周辺機器に読み取りおよび書き込み要求を送信します。
そして今、私は混乱しています:私が理解したことから、デバイスAはデバイスBに情報を直接送信できず、接続が確立されたか失われたかさえ認識しません. ただし、クライアント (デバイス B) はデータの読み取りと書き込みができ、接続と切断の通知を受け取ることができます。
だから私の最初のアイデアは、役割を交換することでした. これで、中央デバイスは、サービスを使用したいことをアドバタイズするデバイスをスキャンすることによってサービスを提供し (?!?)、複数の周辺機器を 1 つの中央デバイスに接続できます。すでに間違っているように聞こえますよね?ここで問題が発生します。接続が確立または切断された場合、周辺機器 (プレゼンテーションを視聴するユーザー) には通知が届かなくなりました (aaahhhhh)。
ここで質問があります: iOS デバイスを周辺機器にして、接続と切断 (距離などによる切断を含む必要があります) を認識する良い方法はありますか?
追加: WWDC 2012 セッション 705 (プレゼンテーション スライドへのリンク)では、メソッド central:didConnect および central:didDisconnect が言及されています。しかし、CBPeripheralManagerDelegate の iOS 7 ベータ版ドキュメントでも、メソッドについては言及されていません。多分これは行き止まりで、Apple は今私を笑っています...
助けてくれてありがとう!
ベンジャミン