hrs*_*krs 2

来自Android 官方网站

setReportDelay()采用reportDelayMillis参数,其中reportDelayMillis

报告延迟(以毫秒为单位)。设置为 0 可立即通知结果。值 > 0 导致扫描结果排队并在请求的延迟后或内部缓冲区填满时传送

回答你的问题:

Android中BluetoothLeScanner的setReportDelay的目的是什么?我无法想象为什么有人会延迟收到报告...|

据我了解,这样做的目的是,有时当您扫描很短的时间时,并不能devices/beacons找到所有内容,但在第二次扫描时可能会在扫描时咳出另一个内容。

例如: 假设您有三个beacons,并且您对 进行了两次不同的扫描1s。在第一次扫描中仅发现单个信标,但在第二次扫描中也发现了其他信标。设置延迟将queue所有这些,您将能够显示所有它们。否则有时会显示单个信标,有时会显示所有信标,有时会显示其中两个信标。(这主要与它们frequency传输的信标有关)

您也可以用于Lists此目的,因此当beacon找到 a 时,您将它们添加到list并在一些之后显示它们delay(使用Handler/Timer)。但这需要更多的工作。所以这个功能可能会被简化