我正在做一个正在寻找信标的程序,我实现了CLLocationManager,我的应用程序除了一点之外有效。 我正在调用startMonitoringForRegion()以获取didEnterRegion / didExitRegion回调。在这些函数中,我正在执行startRangingBeaconsInRegion()/ stopRangingBeaconsInRegion(),以便在用户处于信标区域时获得准确的信息。 我的问题非常简单,如果在用户已经处于信标范围内时启动应用程序,则不会调用didEnterRegion。
我正在寻找像isInRegion()这样的函数,这样当我的应用程序启动时,我可以执行startMonitoringForRegion(),然后使用isInggion()和startRangingBeaconsInRegion(),如果用户已经在该区域中。
我目前的解决方法是在应用程序启动时调用startRangingBeaconsInRegion(),然后在didRangeBeacons回调中,如果没有找到信标,我正在执行stopRangingBeaconsInRegion()。 我不认为这是一种非常干净的方式,并希望在可能的情况下用更好的东西取代
谢谢,
答案 0 :(得分:4)
您可以使用locationManager:didDetermineState:forRegion:
回调,该回调会告诉您是Inside
,Outside
还是Unknown
。
您可以通过调用
强制自己获得回调locationManager.requestStateForRegion(region)
当您的应用启动时。