蓝牙 LE startscan 不显示某些 API 级别的扫描结果

问题描述

我终于在 Android Studio 上设置了一些扫描并运行了代码,但它在我的手机上不起作用(API 级别 21)。我尝试使用另一部 API 级别为 28 的手机,但它仍然没有显示任何扫描结果。最后,我使用了 API 级别 30 的手机,并且成功了。

我拥有的代码来自 this 文章,但即使我测试了作者的源代码 code,我也得到了相同的结果:在 API 级别 21、29 和 30 上都不起作用.

代码适用于 API 级别 21 及更高级别。那么这是手机蓝牙设置中的问题吗?我真的很困惑,因为至少源代码应该让它与 API 21+ 一起工作。

在未显示扫描结果的两部手机上,我测试了其他商业 BLE 应用程序,并且都在 API 28 手机上运行,​​但在我的 API 21 手机上几乎没有。少数可以在我的 API 21 手机上运行的是高生产级别的应用程序,例如 Dabble.io 和 ArduinoBlue。

也许对于较旧的 android 版本,除了通常的操作之外,可能还有一些额外的调整要做:bleScanner.startScan()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)