【发布时间】:2021-11-14 18:50:31
【问题描述】:
我的 iOS 应用中有 BLE 信标检测功能。这意味着如果用户打开了蓝牙和位置,并且如果用户进入信标的范围,系统会自动唤醒应用程序,如果它没有运行(终止状态)。
这在 iOS 14 及更低版本上运行良好。昨天我将我的设备更新到 iOS 15,即使我在设置中启用了“始终”位置权限,应用程序在进入 ble 信标区域时也不再被唤醒。
有什么想法吗?
【问题讨论】:
-
为了完成诊断需要尝试的几件事: (1) 如果您手动启动应用程序,它会从前台检测到吗? (2)如果您然后退出该区域并将应用程序移到后台,它可以从后台再次检测到吗? (3)如果前两个测试成功,那么如果你退出该区域,重启你的手机(重启后等待5分钟而不启动你的应用程序)然后进入信标范围,它检测到吗?
-
@davidgyoung 我可以确认前两个测试工作正常。第三次测试没有成功。进入该区域时,Beacon 未检测到/启动应用程序。
-
@davidgyoung 有什么更新吗?
-
我在不同的函数中添加了本地通知,例如 EnteredRegion、LeftRegion、DidDeterminedState 和 DidRangeBeacons。如果我完全关闭应用程序,超出范围并返回该区域,运行 iOS 14 或更低版本的设备会唤醒,我会收到来自 EnteredRegion、DidDeterminedState 和 DidRangeBeacons 的通知。但我在运行 iOS 15 的设备上没有收到任何通知。前提是我已在所有设备上启用“始终”位置权限。
-
在我们关于此问题(特别是信标监控)的大量错误报告中,状态已更新为“确定的潜在修复 - 用于未来的操作系统更新”。