我正在使用GeoFencing设置一个区域,并在用户输入或离开该区域时执行一些任务。它不是为我工作,我用的是变金的代码
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(some values,some values);
CLRegion *region = [[CLRegion alloc]initCircularRegionWithCenter:coord radius:15.0 identifier:@"SF"];
[locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyBest];但是,当我关闭应用程序并且应用程序正在监视时,没有一个代表didEnterRegion和didExitRegion被调用,然后我离开该区域或进入。
发布于 2013-03-22 11:45:57
你定义的半径是15米。太小了。首先,试试50米或更多。看看地图应用程序,如果你真的进入了那个区域。
此外,我希望你的意思是“发送到背景”,而不是关闭。
确保你已经设置你的应用程序被允许在后台运行?(经由薄片)
更新:
最后,您终止了应用程序。那么,你当然不会得到任何本地事件了。
解决方案:不要通过选择白色十字而双击主页按钮来终止它,只需按一下主按钮就可以关闭它,然后它就有机会在后台运行。
Update2:即使在应用程序被终止时,ios在注册到位置监视服务: from CllLocationManager类引用时也会重新启动它
如果启动此服务并随后终止应用程序,则当新事件到达时,系统会自动将应用程序重新启动到后台。
发布于 2013-03-22 11:48:38
在头文件中添加CLLocationManagerDelegate。确保你加入了
locationManager.delegate = self;试着增加半径并检查。
发布于 2015-05-13 19:29:07
首先,增加您对特定位置的半径,并再次检查它是否不工作,然后通过遵循这个教程中提供的一些简单步骤,您可以轻松地在您的应用程序中实现地理围栏。
参考资料:苹果文档
https://stackoverflow.com/questions/15569450
复制相似问题