Bluetooth 周辺機器に接続されているすべてのデバイスのリストを取得する方法はありますか? iBeacon に接続して、別の iPhone が接続されているかどうかを確認したい。
2 に答える
いいえ、そうしない理由は 2 つあります。
iBeacon は iOS デバイスに接続されておらず、iBeacon はブロードキャストのみであり、電話からビーコンへのバック通信はありません。
ペリフェラルに接続されている他の BT 4.0 セントラルの詳細を知ることは、Bluetooth 4.0 のプライバシー機能と一致していません。あなたが説明しているような状況を避けるために、iOS やその他のセントラルは解決可能なプライベート アドレスを使用しています。
@barbazooは、iBeaconsはデータを送信するだけなので、あなたが求めていることを正確に行うことができないというのは正しいです.iBeaconsはどのデバイスがそれらを見ているのか分かりません.
ただし、言及した各 iOS デバイスで実行されているアプリがあり、Web サービスを構築できるサーバーがあれば、同様のことを実現できます。Web サービスは、次の 2 つのメソッドを公開します。
reportIBeaconVisible(iBeaconProximityUUID, iBeaconMajor, iBeaconMinor, myPhoneAdvertisingId)
queryVisiblePhones(iBeaconProximityUUID, iBeaconMajor, iBeaconMinor)
アプリは、最初の方法を使用して確認した各 iBeacon を報告し、iBeacon の識別子を電話の広告識別子と共にサーバーに渡します。
その後、アプリは 2 番目の方法を使用して、まったく同じ iBeacon を認識した他の電話をサーバーに問い合わせることができます。これにより、電話の広告識別子のリストが返されます。
妥当な頻度でのみデータをサーバーに報告するには、電話にロジックが必要です。電話が特定の時間間隔でビーコンを見たことを報告していない場合、リスト内の電話レコードを自動的に削除するためのコードもサーバー上に必要です。