gpt4 book ai didi

ios - 位置管理器 :didEnterRegion not called when a beacon is detected

转载 作者:IT王子 更新时间:2023-10-29 08:13:06 24 4
gpt4 key购买 nike

在使用信标(iOS 设备)进行测试时,我发现监听器信标出现了一些意外行为。 locationManager:didEnterRegion 方法不会被调用,即使信标进入区域也是如此。但是 locationManager:didRangeBeacons:inRegion: 被正确调用,并且检测到的信标显示在那里。有没有人经历过这样的事情。

最佳答案

检查您的方法是否按以下方式实现。在viewDidLoad中,最后开始监控

self.beaconRegion.notifyOnEntry=YES;
self.beaconRegion.notifyOnExit=YES;
self.beaconRegion.notifyEntryStateOnDisplay=YES;
[self.locationManager startMonitoringForRegion:self.beaconRegion];

监控开始后,请求您定义区域的状态

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

状态确定后,开始测距信标

-(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{
if (state == CLRegionStateInside)
{
//Start Ranging
[manager startRangingBeaconsInRegion:self.beaconRegion];
}
else
{
//Stop Ranging here
}
}

并根据您的需要实现以下方法...

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
self.statusLbl.text=@"Entered region";
}

-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
self.statusLbl.text=@"Exited region";
}

-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
if(beacons.count>0)
{}
}

希望这能解决您的问题。

关于ios - 位置管理器 :didEnterRegion not called when a beacon is detected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19246493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com