美文网首页
小程序开发蓝牙, 设备扫描无回调

小程序开发蓝牙, 设备扫描无回调

作者: kkopitehong | 来源:发表于2021-01-13 14:34 被阅读0次

    最近开发一款蓝牙小程序, 最首要的的功能就是可以扫描周围的蓝牙设备. 翻了下相关文档很快就把demo写好给客户发过去了, 然后对方反馈说不断"重新进入小程序", 每隔4, 5次就会出现无法扫描到设备.

    由于这个次数很固定, 自己也试验了一下果然也有类似的bug出现, 上网搜了下 原来是android底层的限制

        static final int NUM_SCAN_DURATIONS_KEPT = 5;
        // This constant defines the time window an app can scan multiple times.
        // Any single app can scan up to |NUM_SCAN_DURATIONS_KEPT| times during
        // this window. Once they reach this limit, they must wait until their
        // earliest recorded scan exits this window.
        static final long EXCESSIVE_SCANNING_PERIOD_MS = 30 * 1000;
    

    按照注释的解释, 每30s内只能扫描5次

    为了验证下是否正确, 我将每次进入小程序的时间拉长, 果然没有上述找不到设备的问题了

    PS: 正常应该也不会有客户这么闲不断进来, 退出进来退出吧?

    解决

    这种限制貌似也没有太好的解决方法, 可以想到的方法就是第一次扫描过程中没有找到任何设备, 结束后自动开启第二次扫描(虽然有做一个按钮让用户自己点击开启扫描, 但是客户说自动扫描效果好点)

    Page({
      onShow(){
          let isFirst = true
    
          // 监听扫描结束
          listen(res => {
              if (isFirst  && 没有任何设备){
                    // 扫描
                    startScan()
                    isFirst = false
              }
          })
    
          // 扫描
          startScan()
    
      }
    })
    

    相关文章

      网友评论

          本文标题:小程序开发蓝牙, 设备扫描无回调

          本文链接:https://www.haomeiwen.com/subject/gavuaktx.html