解决方法
从
Android Official Site开始:
setReportDelay()采用reportDelayMillis参数,其中reportDelayMillis是:
Delay of report in milliseconds. Set to 0 to be notified of results
immediately. Values > 0 causes the scan results to be queued up and
delivered after the requested delay or when the internal buffers fill
up
来你的问题:
What’s the purpose of setReportDelay for BluetoothLeScanner in Android? I can’t imagine why one would get reports with delay…|
据我所知,有时当你扫描很短的时间时,并不是所有的设备/信标都可以找到,但是在第二次扫描时,另一个可以在扫描时咳嗽.
例如:
假设您有三个信标,并且您为1s进行了两次不同的扫描.在第一次扫描时,仅找到单个信标,但在第二个其他信标也被找到.设置延迟将对所有这些进行排队,您将能够显示所有这些.否则有时会出现单个信标,有时会显示所有这些信标,有时会显示其中的两个信标.(这主要与它们传输的频率有关)
您也可以使用列表来实现此目的,因此当找到信标时,您将它们添加到列表中并在延迟一段时间后显示它们(使用处理程序/计时器).但这需要更多的工作.所以这个功能可能很简单