gpt4 book ai didi

ios - BLE 在后台

转载 作者:行者123 更新时间:2023-11-29 10:44:22 24 4
gpt4 key购买 nike

我正在使用 iBeacon 开展一个项目,该项目要求应用程序在后台持续运行。请不要介意这个的实用性。 iBeacon API 不允许应用程序不断地在后台运行或接收除进入/退出事件之外的任何其他通信(在您设置 needsDisplay 标志的情况下接受,但这并不像我需要的那样被动).一旦进入特定区域,当应用程序完全后台运行时,您似乎无法检测到您最接近哪个信标。

为了让它正常工作,我将几个 iOS 设备设置为 CoreBluetooth 外围设备,插入并始终打开应用程序可以不断“发现”的设备。由于用于外围设备的 BLE 配置文件是“可连接的”,因此该应用程序可以在后台无限期运行,并且可以全天使用 iBeacon 测距。启动时,我发现电池生命周期的减少非常小。

现在的问题是,每隔一天左右,应用程序就会退出,并且不会被进入/退出事件唤醒,也不会被范围内的其他 BLE 设备唤醒。

我知道像这样的 hacky 解决方案肯定会出现无数问题,但就我的生活而言,我无法缩小可能导致这种情况的原因。想法?

最佳答案

每隔一段时间,CoreLocation 就会挂起并且不报告任何新的进入/退出事件。重启手机一般可以解决这个问题。越来越多的轶事报告表明,自 iOS 7.1 发布以来,这可能更常见(过去几周我在 StackOverflow 上看到了另外两个类似的问题,我们在 Radius Networks 上收到了很多关于这个问题的支持请求),但是没有确凿的证据证明 7.1 中的更改会影响这一点。

编辑:在其他地方收集的额外数据表明,当这些挂断发生时,蓝牙继续正常工作,并且挂断的设备仍然可以作为 iBeacon 进行传输。这表明 CoreLocation 中存在一个错误,该错误会导致周期性蓝牙 LE 扫描以查找 iBeacons 以停止。到目前为止,唯一已知的修复方法是重启受影响的手机。

这个问题非常罕见,我一直无法描述它的特征以了解根本原因。是蓝牙问题吗? CoreLocation 问题?您的设置可能是发现问题的理想方法。

一旦您重现此问题,我会立即执行以下操作:

  1. 启动另一个 iBeacon 扫描程序,如 Locate for iBeacon ,并为该区域的任何 iBeacon 设置范围(确保您的 Proximity UUID 已配置。)您看到它们了吗?如果是这样,蓝牙和 CoreLocation 可以正常工作,那么问题可能出在您的应用上。

  2. 如果您在 (1) 中没有看到任何 iBeacon,请转到“设置”>“蓝牙”,然后扫描附近的其他设备(甚至是经典蓝牙设备)。让您的 Macbook 或蓝牙耳机可见,以便于测试。如果您没有看到任何设备,则蓝牙已挂断。尝试将其关闭并重新打开。

  3. 如果您在 (2) 中看到蓝牙设备但在 (1) 中没有看到 iBeacon,则操作系统可能存在处理 CoreLocation 的问题。

我很想知道你看到了什么。上面的过程不会解决您的问题,但它可能会提供更多证据表明正在发生的事情将使修复成为可能。

以下是用户报告类似问题的其他问题:

iOS app with iBeacon must restart device

ibeacon does not apear in iPhone 4S

关于ios - BLE 在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919290/

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