gpt4 book ai didi

iOS:信标检测需要很长时间

转载 作者:行者123 更新时间:2023-11-29 00:40:06 25 4
gpt4 key购买 nike

我有一个应用程序,我可以在其中扫描信标(我知道 UIID)并显示它们。我运行它的前几次我几乎立即发现了信标。但现在每次我运行它时,似乎都需要越来越长的时间来检测它们。尽管我的信标就放在设备旁边的 table 上。

我尝试过更换电池、从 iPhone 更换为 iPad、检查 Mac 上的信标扫描应用程序、重建应用程序等。我还有一系列来自不同制造商的不同信标,它们似乎都有同样的问题。似乎没有什么可以解决这个问题。

我的代码基本上是这样的:

let locationManager = CLLocationManager()
locationManager.delegate = self
let region = CLBeaconRegion(proximityUUID: UUID(uuidString:"61687109-905F-4436-91F8-E602F514C96D")!, identifier: "BlueCat beacon")
locationManager.startMonitoring(for: region)

然后我可以等待 5 分钟或更长时间,然后再调用任何委托(delegate)方法。

这是我第一次尝试使用信标。这是正常的吗?设备是否需要很长时间才能看到信标?

最佳答案

在理想条件下,iOS 上的 didEnterRegion 回调会在信标进入范围后几秒钟内发生。在不太理想的情况下,这些回调可能需要 15 分钟或更长时间。

在监控时,有很多因素会导致检测信标延迟,如果不确切了解您的测试方式,就很难确定。两个提示:

  1. iOS 设备上的硬件过滤器插槽有限,并且遵循先到先得的原则。如果你安装了一堆占用了这些插槽的信标应用程序(或者如果你的应用程序注册了一堆区域),那么所有这些插槽都可能已被占用。一旦硬件过滤器插槽消失,检测就会退回到大约每 15 分钟进行一次的软件扫描。卸载可能占用这些插槽的所有应用程序(包括您的应用程序),然后仅重新安装您的应用程序。

  2. 当您将应用程序置于后台时,请确保您不在“区域中”。如果 iOS 认为它在该区域中,您将不会获得新的 didEnterRegion 回调,直到它意识到它离开该区域然后再次进入。 iOS 意识到退出该区域的时间比意识到进入该区域的时间要长得多。为确保它意识到它已退出该区域,您应该始终在应用程序位于前台时寻找信标,并让应用程序在前台保持约一分钟的时间以确保 iOS 意识到它不再位于该区域(通常需要 30测距秒数以触发退出。)只有这样,您才应将其置于后台并打开信标来测量检测时间。

关于iOS:信标检测需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39714555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com