IBEACON:无法检测广播公司 - 间歇性



我遇到了本教程(http://www.appcoda.com/ios7-programming-ibeacons-tutorial/),涉及我发现很有趣的iBeacon。我已经下载了他们的源代码并能够运行良好。

无论如何,我注意到了一件奇怪的事情。有时,当我首先运行广播电机而不是接收器时,接收器似乎无法检测到任何信标,但是如果我先运行接收器,则只能检测到信标。

我已经尝试研究其他TUT,但iBeacon似乎是一项新技术,并且还没有发现太多参考。你们中的任何人都可以弄脏这件事的伊巴康件事吗?

您的帮助非常感谢。

您看到的问题是因为接收器应用程序仅在检测到您输入区域的情况下才开始为信标开始'范围'。如果您首先启动广播公司,则您已经在信标区域内已经已经,因此您的应用程序可能不会开始范围。文章中的这句话是线索:

启动接收器应用程序,并将其远离广播信标,然后走向该地区以模拟进入该地区。

监视对信标而意味着只有在您定义的区域 enter Enter Exit exit exit 时,才会通知您的应用程序。该区域的半径可能高达约50m,因此,如果您只是坐在接收器旁边,则不应触发这些事件之一,除非您再次关闭接收器。可以在应用程序在后台或前景运行时进行监视。

范围对于区域中的信标表示该应用程序将被通知该应用程序每秒一次 ,该设备可以在指定的区域中看到的所有信标(订购)按距离)。范围将调用您的CLLocationManager委托的locationManager:didRangeBeacons:inRegion:方法。当您在区域内外移动以及与信标的距离发生变化时,信标列表将不断更新。当您的应用在前景中时,范围旨在发生。

如果您希望该应用不断收听信标,请尝试调用

[self.locationManager startRangingBeaconsInRegion:self.beaconRegion];

在您的viewDidLoad:中,而不是在didEnterRegion:方法中。

由于当前位置委托可用方法。还添加此方法 -

- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {
        [self.locationManager startRangingBeaconsInRegion:self.beaconRegion];
}

这将解决问题。

最新更新