关闭蓝牙时没有触发 didExitRegion
didExitRegion not fired when turn off bluetooth
我正在使用 IBeacon
构建一个简单的 ios 应用程序,我正在监视一个区域,但我在进入和退出事件方面遇到了一些问题。
如果我进入某个区域,回调 didEnterRegion
会被触发,但在该区域内,关闭蓝牙不会触发 didExitRegion
回调。这是预期的行为吗?
这是一个问题,因为我必须能够检测到用户何时离开该区域。有什么想法吗?
谢谢
出于测试目的,您必须关闭信标或移出范围才能获得 didExitRegion
事件。
一旦 CoreLocation
确定它在 CLBeaconRegion
内,它只会在有机会进行蓝牙扫描 3 秒后将状态更改为处于区域外,在此期间没有信标匹配 CLBeaconRegion
被检测到。如果蓝牙未打开,则无法通过扫描来确定。
如果您想在这种情况下强制退出您的应用程序,请考虑侦听 CoreBluetooth
生命周期事件。关闭电源时,您可以注销每个 CLBeaconRegion
,手动触发您的 didExitRegion
逻辑,然后使用 CoreLocation
.
注销它们
我正在使用 IBeacon
构建一个简单的 ios 应用程序,我正在监视一个区域,但我在进入和退出事件方面遇到了一些问题。
如果我进入某个区域,回调 didEnterRegion
会被触发,但在该区域内,关闭蓝牙不会触发 didExitRegion
回调。这是预期的行为吗?
这是一个问题,因为我必须能够检测到用户何时离开该区域。有什么想法吗?
谢谢
出于测试目的,您必须关闭信标或移出范围才能获得 didExitRegion
事件。
一旦 CoreLocation
确定它在 CLBeaconRegion
内,它只会在有机会进行蓝牙扫描 3 秒后将状态更改为处于区域外,在此期间没有信标匹配 CLBeaconRegion
被检测到。如果蓝牙未打开,则无法通过扫描来确定。
如果您想在这种情况下强制退出您的应用程序,请考虑侦听 CoreBluetooth
生命周期事件。关闭电源时,您可以注销每个 CLBeaconRegion
,手动触发您的 didExitRegion
逻辑,然后使用 CoreLocation
.