我有一个运行两种模式的应用程序:
当两个设备接近时,会触发通知。在前台时,我可以使用主/小值将唯一的设备ID (猜测蓝牙MAC地址)发送到模式2中的设备,并调用webservice来识别设备所属的“谁”。
这种方法在后台似乎是不可能的?我读到过,iOS设备发布的蓝牙数据包要么在广告时剥离蓝牙MAC地址和主要/次要值,要么是在后台运行应用程序的设备选择不接收通知?
我的问题是:
是否可以检测到哪个设备在为应用程序UUID做广告,即使设备监控的后台使用CoreBluetooth iBeacon或CoreLocation服务?
发布于 2014-05-08 20:37:36
是的,您可以使用模式2中的CoreLocation iBeacon API和模式1中带有设备特定的主标识符和次要标识符的CoreBluetooth API来宣传iBeacon。
为了澄清,您不能使用蓝牙Mac地址作为iOS欺骗在接收端(在背景和前景),分配一个唯一的每个会话并不总是一致的相同的传输设备。
使用iBeacon传输时,您必须事先知道接收器上的iBeacon ProximityUUID,因此16位主字段和16位次要字段是唯一可以用于唯一标识设备的字段。这给了你超过十亿的组合,所以它应该是足够的。
您可以在后台监视单个iBeacon UUID,然后iOS将唤醒您的应用程序5秒钟,允许您使用iBeacon测距API读取主要和次要标识符。所有这些都在模式2的背景中工作,除了作为一个iBeacon传输,它需要模式1的前景。
https://stackoverflow.com/questions/23550548
复制相似问题