获取到的beacon.distance为空

  • (void)beaconDidConnected:(ABBeacon *)beacon withError:(NSError *)error
    {
    NSLog(@“peripheral: %@,rssi: %ld,uuid: %@,macAddress: %@,distance: %@”,beacon.peripheral.name,(long)beacon.rssi,beacon.proximityUUID.UUIDString,beacon.macAddress,beacon.distance);
    }
    打印信息中除了distance外其余都能得到,请问是我用错了吗

当状态为connected的时候,无法获取distance。这个属性仅限于beacon扫描方式的时候使用

请问哪个方法可以获取到distance,这个距离是指目标物到设备的距离吧

ABBeaconManager 调用

startRangingBeaconsInRegion

在回调中

  • (void)beaconManager:(ABBeaconManager *)manager
    didRangeBeacons:(NSArray *)beacons
    inRegion:(ABBeaconRegion *)region

可以打印出distance。

[self.beaconManager startRangingBeaconsInRegion:self.beaconRegion];
这样用出错,请问参数传什么进去

你看过官方demo没有呀?
demo里面写的非常清楚呀。
你也可以看看苹果API关于ibeacon的。

NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:@“E2C56DB5-DFFB-48D2-B060-D0F5A71096E0”];
NSString *regionIdentifier = @“com.siyuexiongdi.aprilbeaconDemo”;
ABBeaconRegion *beaconRegion;
beaconRegion = [[ABBeaconRegion alloc] initWithProximityUUID:proximityUUID
identifier:regionIdentifier];
beaconRegion.notifyOnEntry = YES;
beaconRegion.notifyOnExit = YES;
beaconRegion.notifyEntryStateOnDisplay = YES;
[_beaconManager startRangingBeaconsInRegion:beaconRegion];

那这个uuid如何动态获取,官方DEMO是代码里保存的UUID