
[英]Receive iBeacon with Same uuid and different major, minor in background
[英]Detect iBeacon with different major and minor values
我正在尝试一个简单的测试。
设备1:
充当UUID的灯塔:XXX-XXX-XXX
专业:1000
轻微:1234
self.peripheralData = [MyRegion peripheralDataWithMeasuredPower:nil];
[self.peripheralManager startAdvertising:self.peripheralData];
设备2:
充当UUID的区域侦听器:XXX-XXX-XXX
locationManager startMonitoringForRegion:_region
设备2不检测设备1.它只检测设备1,如果我编程监听该区域有主要:1000和次要:1234。
这听起来不错吗?
假设我有100部手机充当信标,具有相同的uuid和标识符,但主要和次要值不同。 我有50个电话作为特定uuid和idenfitifer的听众...我可以找到所有与该uuid的信标并阅读他们的主要和次要价值观?
我究竟做错了什么?
初始化您的区域时,请使用
region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:identifierString];
而不是像
region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:[major integerValue] minor:[minor integerValue] identifier:identifierString];
通过不指定主要值和次要值,应检测具有匹配UUID的所有信标。 这个对我有用。
我认为你的问题的关键在于这个评论:
当然。 它刚刚使用initwithuuid主要和次要创建 - Legolas昨天
创建信标区域有3种不同的调用:
initWithProximityUUID:identifier:
,
initWithProximityUUID:major:identifier:
和
initWithProximityUUID:major:minor:identifier:
如果要检测具有任何UUID的信标,则需要使用未指定主要值或次要值的第一个表单。
然后你还需要调用startRangingBeaconsInRegion:并查看测距调用中返回的信标对象。
DidEnterRegion调用只包含主要或次要值,如果它们是该区域的一部分。
测距回调包括检测到的所有信标,包括其主要和次要值,距离和接近度等。
要消除代码中的问题,请尝试使用应用商店中的免费Locate for iBeacon应用程序执行完全相同的操作。 尝试使用此应用程序与您的自定义应用程序制作发射器/探测器的一侧或两侧。
如果它不能同时使用Locate for iBeacon,那么你的某个设备就会出现问题。 如果它确实可以在一侧使用Locate for iBeacon,请将您的代码发布给遇到问题的一方。
您使用哪种委托方法作为位置管理器? 有时,如果你已经在该地区,则不会调用DidEnter,即在启动正在进行监控的那个之前打开发射信标。 如果这是状态变化的情况监视器而你应该是好的。
此外,我强烈建议使用David的Locate iBeacon应用程序。 它将真正加快您的开发过程。 感谢:D!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.