ios - 关闭蓝牙时没有触发 didExitRegion

标签 ios objective-c bluetooth core-location ibeacon

我正在使用 IBeacon 构建一个简单的 ios 应用程序,我正在监视一个区域,但我在进入和退出事件方面遇到了一些问题。

如果我进入某个区域,回调 didEnterRegion 会被触发,但在该区域内,关闭蓝牙不会触发 didExitRegion 回调。这是预期的行为吗?

这是一个问题,因为我必须能够检测到用户何时离开该区域。有什么想法吗?

谢谢

最佳答案

出于测试目的,您必须关闭信标或移出范围才能获得 didExitRegion 事件。

一旦 CoreLocation 确定它在 CLBeaconRegion 内,它只会在有机会进行蓝牙扫描 3 秒后将状态更改为在该区域之外这一次没有检测到与 CLBeaconRegion 匹配的信标。如果蓝牙未打开,则无法通过扫描来做出此决定。

如果您想在这种情况下强制退出您的应用程序,请考虑监听 CoreBluetooth 生命周期事件。关闭电源时,您可以注销每个 CLBeaconRegion,手动触发您的 didExitRegion 逻辑,然后使用 CoreLocation 注销它们。

关于ios - 关闭蓝牙时没有触发 didExitRegion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30640270/

相关文章:

ios - Alamofire Multiform 上传带参数的图片

ios - NSXMLParser在<?xml version =“1.0”?>上引发NSXMLParserErrorDomain#64

ios - 如何实现像 iOS MAIL 应用程序这样的平移手势,以便一次只打开一个单元格?

Android 2.1蓝牙SPP转LM058(串口线更换)问题

iOS PhoneGap 2.3 Config.xml 困惑

ios - 3D Peek and Pop 内存泄漏

ios - 同一 View 的平移和点击手势识别器,另一个需要失败吗?

objective-c - 注册全局热键而不支持启用辅助设备

c# - 无法使用 32feet.Net C# 库通过蓝牙将文件从 Windows 传输到 Linux

ios - 检查蓝牙是否在 iOS 7 上没有系统弹出窗口