kotlin - ScanCallback:检查是否在某个时间间隔内没有找到设备
问题描述
我构建了一个应用程序,该应用程序不断检查 BLE 设备,并在 onScanResult 上使用新发现的设备更新列表。
如果在某个时间间隔内没有找到设备,我想删除列表中的设备。如果是这种情况,是否有一种优雅的方式来获得回调(我试图避免一些讨厌的解决方法)?在developer.android.com上的文档中,我没有找到类似的东西。方法:
private val leScanCallback: ScanCallback = object : ScanCallback() {
override fun onScanResult(callbackType: Int, result: ScanResult) {
super.onScanResult(callbackType, result)
val device = result.device
Log.d("LeDeviceScanner", "Device found: ${device.address} - ${device.name ?: "Unknown"}")
onDeviceResult(result.device)
}
}
据我所知,其他回调是:onScanFailed和onBatchScanResults,这些都对我没有帮助。
解决方案
我会回答我自己的问题,希望对某人有所帮助。没有找到设备的简单回调。因此,必须找到解决方法。在我的情况下,我将找到的设备存储在一个列表中,如果在一分钟的搜索中没有再次找到它,我想删除该设备。每次找到设备时,我都会使用我传回的时间戳来做到这一点。没有那么优雅,但它确实有效。
推荐阅读
- unix - 为什么我创建的别名没有在我期望的路径中执行?
- fluentd - 剂量 Fluentd 对线路长度有限制吗?
- python - 使用来自不同位置的相同文件导入路径
- c# - Admob 测试广告(奖励广告)在构建后不会显示在真实设备上
- c# - 我怎样才能重复使用我的对象而不是销毁它们?
- java - 从 Spring Boot 应用程序连接到 Firestore 会引发空指针异常
- authentication - Vaadin 登录覆盖
- eclipse - 为什么 Eclipse 无法识别 JavaFX,即使添加了 JavaFx 用户库?
- kubernetes - Helm - 如何使用 ConfigMap 在卷中写入文件?
- java - Spring security中用户注册后生成access_token和refresh_token