Beacon / IOS CLLocationManager 获取当前区域
Beacon / IOS CLLocationManager get current region
我正在做一个正在寻找信标的程序,我实现了 CLLocationManager 并且我的应用程序除了一点之外都可以工作。
我正在调用 startMonitoringForRegion() 以获得 didEnterRegion/didExitRegion 回调。在这些函数中,我正在执行 startRangingBeaconsInRegion()/stopRangingBeaconsInRegion() 以便在用户位于信标区域时获取准确信息。
我的问题很简单,如果应用程序在用户已经在信标范围内时启动,则不会调用 didEnterRegion。
我正在寻找类似 isInRegion() 的函数,这样当我的应用程序启动时,我可以执行 startMonitoringForRegion() 然后 isInRegion() 和 startRangingBeaconsInRegion() 如果用户已经在该区域中。
我目前的解决方法是在应用程序启动时调用 startRangingBeaconsInRegion(),然后在 didRangeBeacons 回调中,如果未找到信标,我将调用 stopRangingBeaconsInRegion()。
我不认为这是一种非常干净的方式,如果可能的话,我想用更好的方式代替
谢谢,
您可以使用 locationManager:didDetermineState:forRegion:
回调,它会告诉您您是 Inside
、Outside
还是 Unknown
。
您可以通过调用
强制自己获得回调
locationManager.requestStateForRegion(region)
当您的应用程序启动时。
我正在做一个正在寻找信标的程序,我实现了 CLLocationManager 并且我的应用程序除了一点之外都可以工作。 我正在调用 startMonitoringForRegion() 以获得 didEnterRegion/didExitRegion 回调。在这些函数中,我正在执行 startRangingBeaconsInRegion()/stopRangingBeaconsInRegion() 以便在用户位于信标区域时获取准确信息。 我的问题很简单,如果应用程序在用户已经在信标范围内时启动,则不会调用 didEnterRegion。
我正在寻找类似 isInRegion() 的函数,这样当我的应用程序启动时,我可以执行 startMonitoringForRegion() 然后 isInRegion() 和 startRangingBeaconsInRegion() 如果用户已经在该区域中。
我目前的解决方法是在应用程序启动时调用 startRangingBeaconsInRegion(),然后在 didRangeBeacons 回调中,如果未找到信标,我将调用 stopRangingBeaconsInRegion()。 我不认为这是一种非常干净的方式,如果可能的话,我想用更好的方式代替
谢谢,
您可以使用 locationManager:didDetermineState:forRegion:
回调,它会告诉您您是 Inside
、Outside
还是 Unknown
。
您可以通过调用
强制自己获得回调locationManager.requestStateForRegion(region)
当您的应用程序启动时。