获取不到uuid和macAddress

我声明好了ABeacon的实例变量@property (nonatomic, strong) ABBeacon *beacon;
self.beacon.delegate = self;
[self.beacon connectToBeacon:ABConnectedReadStatedAllInfo];
代理和连接beacon方法都用了
但是- (void)beaconManager:(ABBeaconManager *)manager didDiscoverBeacon:(ABBeacon *)beacon
代理方法得不到uuid和macAddress,都为空

self.beaconManager = [[ABBeaconManager alloc] init];
self.beaconManager.delegate = self;
都用了

你用了这个方法么

https://aprilbrother.github.io/aprilbeacon-ios-sdk/Documents/Classes/ABBeacon.html#//api/name/readBeaconMacAddressWithCompletion:

更多的SDK文档

  • (void)beaconManager:(ABBeaconManager *)manager didDiscoverBeacon:(ABBeacon *)beacon
    {
    [beacon readBeaconMacAddressWithCompletion:^(NSString *value, NSError *error) {
    NSLog(@“value: %@”,value);
    }];
    }
    是这样用吗

要在connect之后调用,也就是之前提到的

[self.beacon connectToBeacon:ABConnectedReadStatedAllInfo];

我已经在viewDidLoad里用了[self.beacon connectToBeacon:ABConnectedReadStatedAllInfo];
然后才调用(void)beaconManager:(ABBeaconManager *)manager didDiscoverBeacon:(ABBeacon *)beacon

你函数调用的顺序弄错了。

  • (void)beaconManager:(ABBeaconManager *)manager didDiscoverBeacon:(ABBeacon *)beacon (ABBeaconManagerDelegate)

是 - (void)startAprilBeaconsDiscovery的回调。

连接beacon [self.beacon connectToBeacon:ABConnectedReadStatedAllInfo] 的回调是

  • (void)beaconDidConnected:(ABBeacon *)beacon withError:(NSError *)error(ABBeaconDelegate)

此时就能得到uuid,macAddress。

我原先就是这么用的,但是得到的数据有些慢,想用beaconManager的代理方法得到数据

beaconManager 得不到macAddress, 必须要连上才行。

恩,我试过了必须得连上才行,然后用(void)beaconDidConnected:(ABBeacon *)beacon withError:(NSError *)error得到macAddress