2013-10-07 55 views
1

有没有办法如何获得连接到蓝牙外设的所有设备列表? 我想连接到iBeacon并检查是否有另一个iPhone连接到它。CoreBluetooth - 让所有设备连接到蓝牙外设

+1

您可以实现自己的注册表机制,并在自定义服务和特性中提供它。但是正如@ barbazoo提到的那样,iBeacon没有连接。 – allprog

回答

4

否,原因有两个,为什么不:

  1. iBeacons没有连接到iOS设备,iBeacons只广播和手机没有回通信存在信标。

  2. 了解连接到外围设备的其他BT 4.0中心的详细信息不符合蓝牙4.0的隐私功能。 iOS和其他中心正在使用可解析的私有地址,以避免像您所描述的情况。

0

@barbazoo是正确的,你不能完全按照你的要求做,因为iBeacons只传输数据 - 他们不知道什么设备看到它们。

但是,如果您的应用程序在您提到的每个iOS设备上运行,并且您有可以构建Web服务的服务器,则可以完成类似的操作。 Web服务将暴露两种方法:

reportIBeaconVisible(iBeaconProximityUUID, iBeaconMajor, iBeaconMinor, myPhoneAdvertisingId) 
queryVisiblePhones(iBeaconProximityUUID, iBeaconMajor, iBeaconMinor) 

该应用程序将每个iBeacon显示它认为使用第一种方法,传递iBeacon显示的标识符,与手机的广告标识的服务器一起汇报。

该应用程序然后可以使用第二种方法向服务器询问其他电话已经看到完全相同的iBeacon,这将返回电话广告标识符列表。

你必须有手机上的逻辑才能以合理的频率向服务器报告数据。如果手机未在特定时间间隔内报告看到信标,则还需要服务器上的代码自动删除列表中的电话记录。