作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一套 Estimote 信标。当我使用 estimote sdk 时,我可以为信标测距并使用它。但问题是,当我使用 iOS SDK 进行监控和测距时,根本没有调用 didRangeBeacons。
我已经开始测距,如下图所示。当我使用断点检查时,该函数被调用。
- (void) locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{
switch (state) {
case CLRegionStateInside:
[self.beaconManager startRangingBeaconsInRegion:self.beaconRegion];
NSLog(@"Region CLRegionStateInside");
最佳答案
请确保您已完成以下检查 list :
您已经在您的 info.plist 中输入了 NSLocationAlwaysUsageDescription
您的属性 self.beaconRegion 是一个 CLBeacon 区域,其 UUID 与您要检测的 UUID 匹配。
您的设备是 iPhone 4S 或更新版本,运行 iOS 7 或更高版本,并且已打开蓝牙
我会将代码更改为如下所示:
- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(nonnull CLRegion *)region {
CLBeaconRegion *beaconRegion = (CLBeaconRegion *)region;
if (beaconRegion.major && beaconRegion.minor) {
} else {
switch (state) {
case CLRegionStateUnknown:
// Handle this case when bluetooth is off.
break;
case CLRegionStateInside:
NSLog(@"Inside %@", region);
if (![self.locationManager.rangedRegions containsObject:beaconRegion]) {
[self.locationManager startRangingBeaconsInRegion:[[CLBeaconRegion alloc] initWithProximityUUID:beaconRegion.proximityUUID identifier:beaconRegion.proximityUUID.UUIDString]];
}
break;
case CLRegionStateOutside:
NSLog(@"Outside %@", region);
break;
}
}
}
您只需要在 UUID 上进行测距,因为这将拾取与该 UUID 匹配的所有信标,无论主要还是次要。另请注意,如果您尚未进行测距以避免额外的函数调用,则应仅尝试开始测距
关于ios - 即使调用了 didDetermineState,也未调用 dirangebeacons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29936882/
我有一套 Estimote 信标。当我使用 estimote sdk 时,我可以为信标测距并使用它。但问题是,当我使用 iOS SDK 进行监控和测距时,根本没有调用 didRangeBeacons。
我是一名优秀的程序员,十分优秀!