【发布时间】:2013-10-13 16:43:23
【问题描述】:
有没有办法获取连接到蓝牙外围设备的所有设备的列表? 我想连接到 iBeacon 并检查是否有其他 iPhone 连接到它。
【问题讨论】:
-
您可以实现自己的注册机制并在自定义服务和特性中提供它。但正如@barbazoo 提到的,iBeacon 没有连接。
标签: ios7 core-location core-bluetooth ibeacon
有没有办法获取连接到蓝牙外围设备的所有设备的列表? 我想连接到 iBeacon 并检查是否有其他 iPhone 连接到它。
【问题讨论】:
标签: ios7 core-location core-bluetooth ibeacon
不,有两个原因:
iBeacons 未连接到 iOS 设备,iBeacon 仅广播,不存在从手机到信标的反向通信。
了解连接到外围设备的其他 BT 4.0 Central 的详细信息不符合蓝牙 4.0 的隐私功能。 iOS 和其他 Central 正在使用可解析的私有地址,以避免出现您所描述的情况。
【讨论】:
@barbazoo 是正确的,你不能完全按照你的要求去做,因为 iBeacon 只传输数据——他们不知道什么设备能看到它们。
但是,如果您在提到的每台 iOS 设备上都运行了一个应用程序,并且您有一个可以构建 Web 服务的服务器,那么您也可以完成类似的事情。 Web 服务将公开两种方法:
reportIBeaconVisible(iBeaconProximityUUID, iBeaconMajor, iBeaconMinor, myPhoneAdvertisingId)
queryVisiblePhones(iBeaconProximityUUID, iBeaconMajor, iBeaconMinor)
应用程序将使用第一种方法报告它看到的每个 iBeacon,将 iBeacon 的标识符连同手机的广告标识符一起传递给服务器。
然后应用程序可以使用第二种方法询问服务器哪些其他手机看到了完全相同的 iBeacon,这将返回手机广告标识符列表。
您必须在电话上设置逻辑,以便仅以合理的频率向服务器报告数据。如果电话在特定时间间隔内没有报告看到信标,您还需要服务器上的代码来自动删除列表中的电话记录。
【讨论】: