我们正在使用AltBeacon来检测背景中的区域。对于项目的一个重要用例,我们绝对需要有很多非常小的区域(基本上一个信号发射功率最小的是整个区域)并且非常接近。 通过这个信标设置,我们会在每个区域事件中得到通知,但是输入区域事件的触发时间比我们希望的更早,通常发生在我们走进信标半径10米(代表区域)的时候。我们的目标是至少将这个距离缩短一半。 我知道这个用例对于区域监控来说并不理想,但它必须以这种方式工作。 是否可以设置最小距离以获得进入区域事件的通知?
我们开始测试的一个可能的解决方案是始终进行测距(即使在背景上),将默认前景扫描周期覆盖为类似背景监控的内容。我们担心的是距离可能不可靠(由于扫描不是一直发生的,并且最小的信标功率设置),并且电池消耗可能高于同等频繁的监控。有关这种方法的任何想法吗?
答案 0 :(得分:0)
你可以使用 onReadRemoteRssi。它以dB为单位测量信号强度,您可以通过它来估算距离。请记住,它不准确,你必须测试它。我尝试过这样的东西,但有一些像噪音一样的峰值,你应该过滤它们。这是一个example
答案 1 :(得分:0)
应用于检测信标数据包的范围和监控API是抽象概念。正如您在使用案例中找到的那样,这两个概念都不完全适合。
你想要的是两件事同时出现:
在特定信标的短距离内触发逻辑(如测距)
电池友好检测(如监控)
不幸的是,要估算距离,您必须按照通常在前景中进行测距的方式进行恒定的蓝牙扫描。这些持续扫描会使用更多电池。
根据您的使用情况,可能在后台进行恒定范围但仅限时间。这应该为您提供该时期可接受的距离估计。您可以决定何时开始此操作(例如,第一个信标检测),并且只有在检测到信标或最长时间间隔(例如10分钟)时才继续。如果您可以限制时间,则可以接受电池使用情况。