收藏
评论

[Android]频繁调用扫描蓝牙设备,收不到发现设备回调的原因

        本人在公司负责蓝牙产品的微信小程序蓝牙SDK的开发,其实就是在微信蓝牙API的基础上封装一层,封装的目的是:为项目组提供更好用(业务逻辑清晰、效率高、兼容微信API的Bug、兼容iOS和Android平台的差异)的SDK。


        在对小程序SDK的压测中发现,安卓平台(Android 7、8系统)扫-发现-停扫-连-断 测试中,测试间隔小于5s时,很容易出现调用wx.startBluetoothDevicesDiscovery成功,设备在附近广播中,但是却收不到wx.onBluetoothDeviceFound,而且很规律的是6的倍数会出现。无奈只能增加一个扫描超时,返回扫描超时。


        原因是,安卓系统对扫描有限制:30s内最多调用5次扫描,调用第6次扫描,不起作用。安卓源码截图:



分享出来希望对大家有所帮助!


最后一次编辑于  2018-01-26
赞 0
收藏

1 个评论

  • Jimmy L
    Jimmy L
    2018-02-02

    感谢分享

    2018-02-02
    赞同
    回复