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

检测 BLE 在 30 秒内扫描超过 5 次

如何解决检测 BLE 在 30 秒内扫描超过 5 次

This article 表示 android BLE 每 30 秒只能扫描 5 次。第 6 次失败。我的问题是我无法获取这个问题。好像也没有什么异常什么的。

调用 onScanFailed 时出现此错误。好像很安静。

   private val scanCallback = object: ScanCallback() {
        override fun onScanFailed(errorCode: Int) {
            super.onScanFailed(errorCode)
            // not called 
        }
    }

我尝试注册 ACTION_disCOVERY_STARTED 但只有在您使用 BLEAdapter.getInstance().startdiscovery() 时才会调用此操作,并且此命令适用于经典蓝牙。我使用 BLE 扫描。

以下属性也是如此:BLEAdapter.getInstance().isdiscovering 这只能是 true,当您使用 startdiscovery

有人知道我如何知道扫描是否失败,因为这是 30 秒内的第 6 次吗?

解决方法

不幸的是,当您达到限制时,API 不会报告。您需要跟踪自己扫描的频率和时间。

否则看起来扫描正在进行中,但实际上并非如此。

然而,当达到限制时,您会在 logcat 日志中看到。

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