CLLocationManager开始监控区域时如何判断用户是否已经在区域内
How to determine if user is already within region when CLLocationManager begins monitoring regions
我有一个在后台测距信标的应用程序。当我初始化我的 CLLocationManager 实例时,我开始使用 startMonitoringForRegion
方法。我正在处理 locationManager:didEnterRegion
、locationManager:didExitRegion
和 locationManager:didDetermineState:ForRegion
委托方法。在这些方法中,我正在调整范围 on/off.
这一切似乎都很好用,除非在用户已经存在于该区域内时初始化 CLLocationManager
。在那种情况下,直到我退出并重新进入该区域后,才会调用 locationManager:didEnterRegion
和 locationManager:DidDetermineState:ForRegion
。我一直认为这至少会触发 locationManager:DidDetermineState:ForRegion
但事实并非如此。
有没有办法确定当我第一次启动时用户是否最初在区域内 startMonitoringForRegion
?
您可以调用管理员的requestStateForRegion
方法。这将导致您的委托的 didDetermineState
方法被异步调用。
我有一个在后台测距信标的应用程序。当我初始化我的 CLLocationManager 实例时,我开始使用 startMonitoringForRegion
方法。我正在处理 locationManager:didEnterRegion
、locationManager:didExitRegion
和 locationManager:didDetermineState:ForRegion
委托方法。在这些方法中,我正在调整范围 on/off.
这一切似乎都很好用,除非在用户已经存在于该区域内时初始化 CLLocationManager
。在那种情况下,直到我退出并重新进入该区域后,才会调用 locationManager:didEnterRegion
和 locationManager:DidDetermineState:ForRegion
。我一直认为这至少会触发 locationManager:DidDetermineState:ForRegion
但事实并非如此。
有没有办法确定当我第一次启动时用户是否最初在区域内 startMonitoringForRegion
?
您可以调用管理员的requestStateForRegion
方法。这将导致您的委托的 didDetermineState
方法被异步调用。