当前位置: 首页 > 知识库问答 >
问题:

如何知道BLE信标超出范围与Android BLE api 21[复制]

钱承允
2023-03-14

新的Android BLE api(从api 21开始)允许在onBatchScanResults中轻松找到的信标上进行回调,但当信标超出范围时,有可能获得某种信息吗?

我想我可以手动记住最后看到的信标列表

public void onBatchScanResults (List<ScanResult> results)

下一批将其与最后一次看到的进行比较——但在这种情况下,我需要唤醒设备——比方说——每分钟检查某物是否发生了变化。

免责声明:我不使用ibeacon,但使用其他BLE信标,但没有类似于信标的标签

共有1个答案

叶光华
2023-03-14

您需要使用计时器并按照您的描述维护一个列表,因为API对正在消失的设备没有状态知识。

一些提示:

  1. 让您的列表基于在多个回调中看到的设备,因为单个回调可能没有完整的列表
 类似资料:
  • 我正在创建一个宏,它将从一个更大的工作簿中选择工作表,移动和保存这些工作表作为一个新的工作簿,然后移动到下一个集。 我创建了一个带有开始和结束值(由工作表索引号指定)的伪“数组”。 我遇到了一个“下标超出范围”的错误,在完成保存文件的部分后,但在将拉出下一组工作表的循环之前。

  • 问题内容: 为什么使用lambda函数来获取值列表i = 4。在调用lambda期间,不存在封闭范围。函数f已经完成工作并返回了控制(变量i不存在)。 问题答案: Python使用闭包捕获对原始变量的引用。这些对象保留对名称的引用,可以通过该引用访问值。这意味着变量在完成后将继续存在。 您可以在lambda对象的元组中内省此闭包;函数具有相同的属性: 这也是列表中 所有 lambda 都引用val

  • 假设我有一个这样的数组: 我故意用从负值到高于9的任何值对它进行索引,但不使用任何方式产生的值。这是出于性能原因(也许在数组访问完成后检查输入索引更有效)。 我的问题是: 这样做安全吗,或者我会遇到某种内存保护障碍,有可能破坏内存或某些索引的类似功能吗

  • 问题内容: 我有以下代码: 我的索引超出范围错误,我不知道为什么。我声明了大小为10的尺寸。为什么会出现此错误? 问题答案: 您声明了一个,其初始容量为10个元素,但没有向此列表中添加元素,即列表为空。将替换现有元素,但是由于列表中没有元素,因此将引发异常。您必须使用方法在之前添加元素。 表示列表内部维护的数组的开头大小为10。在列表中添加更多元素时,此内部数组的大小可能会更改。

  • 问题内容: 我收到错误 BIGINT UNSIGNED值超出范围在’(1301980250 - 。。 )’ 当我运行查询 删除ORDER BY条件,也将删除错误。我该如何解决? 更新: 日期字段包含UNIX时间戳(例如:1298944082)。我将MySQL从5.0.x升级到5.5.x后开始出现错误 有什么帮助吗? 问题答案: 我最近遇到了这个问题,并找到了最合理的解决方案,可以将任何UNSIGN

  • 非常感谢。最好的问候。