微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:为什么 BluetoothLeScanner 有时没有发现任何 BLE 设备?

如何解决Android:为什么 BluetoothLeScanner 有时没有发现任何 BLE 设备?

我正在使用 BluetoothLeScanner 扫描我开始使用的 BLE 设备:

startScan(null,settings.getScanSettings(),scanCallback);

每隔一段时间,对 startScan()调用都不会发现任何 BLE 设备,即使某些设备实际上在做广告(它们是使用 nRF Connect 应用程序发现的)。

发生这种情况时,对 stopScan()startScan() 的下一次调用确实会发现设备。

我知道从 Android 7 开始,开始和停止扫描的次数被限制在 30 秒的窗口内 5 次。但是,我注意到如果超过 30 秒没有调用 stopScan()/startScan() 也会出现问题。

有人遇到过这样的问题吗? 可能是我的应用程序在启动扫描仪时正在做的其他事情导致扫描失败?

我在使用 Android 10 及更低版本时遇到此问题。

解决方法

Android 手机限制 BLE 扫描持续时间以节省能源。所以你不能长时间扫描BLE广告。是系统限制,APP层无法更改。

在旧手机(可能在 4.4 以下)中不要设置限制,但它会使手机变热。

如果您想长时间扫描 BLE 广告,更改您的设计是更好的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。