我声明好了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;
都用了
- (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