Beacon Proximity range 将接近响应更改为 Near - Immediate - Far,即使 ios 设备保持在同一位置。
当我在接近响应接近时打开 View 时。我来回得到接近响应,近 - 立即然后近。它一次又一次地显示 View
我们如何解决这个问题。是否有任何事件处理程序。
谢谢。
Best Answer-推荐答案 strong>
接近度和准确度值似乎很“嘈杂”。它也可能取决于您的环境。水(以及人)会吸收蓝牙使用的频率,因此移动的人可能会产生影响,但我观察到当两台设备都放在我的 table 上时,其距离在 1.2m 和 1.9m 之间。
我认为您将不得不处理应用程序中的噪音。 View 打开后,您应该将其保持打开状态,直到信标“远”(或您获得区域退出)一段时间。如果状态转换回接近或立即,则重置计时器。
你需要使用一些类似下面的代码-
-(void)locationManagerCLLocationManager *)manager
didRangeBeaconsNSArray *)beacons
inRegionCLBeaconRegion *)region {
CLBeacon *beacon=beacons[0];
switch (beacon.proximity) {
case CLProximityFar:
if (self.farTimer==nil) {
self.farTimer=[NSTimer scheduledTimerWithTimeInterval:30 target:self selectorselector(farTimerFired userInfo:beacon repeats:NO];
}
break;
case CLProximityNear:
case CLProximityImmediate:
if (self.farTimer!=nil) {
[self.farTimer invalidate];
self.farTimer=nil;
}
break;
case CLProximityUnknown:
NSLog(@"Beacon proximity is unknown");
break;
}
}
-(void) farTimerFiredNSTimer *)timer {
CLBeacon *beacon=(CLBeacon *)timer.userInfo;
NSLog(@"Beacon %@ is really far",beacon.proximityUUID.UUIDString);
self.farTimer=nil;
}
关于ios - 即使应用程序在同一个地方,信标的接近范围也会来回变化,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22627580/
|