收藏
回答

onBluetoothDeviceFound搜索很慢并且有时搜索不到设备

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onBluetoothDeviceFound 工具 7.0.3 2.6.5

- 当前 Bug 的表现(可附上截图)

    在蓝牙开启的情况下

startBluetoothDevicesDiscovery

成功后

onBluetoothDeviceFound 经常性搜索不到设备, 并且特别慢, 手机原生 App却没有这个问题

onBluetoothDeviceFound 每次都有返回搜索到的蓝牙数据, 定位权限打开了的, 经常性搜索要花10s以上, 并且远距离的设备已经搜到很久了 , 近距离的设备搜索很久都搜不到, 我设置的超时时间为20s , 请官方大佬尽快修复, 老板经常催

- 预期表现

    期望和原生 App 一致, 搜索不要经常出现搜索不到设备或搜索很久才出现设备的情况

- 复现路径


- 提供一个最简复现 Demo

wx.openBluetoothAdapter({

success: function(res) {

wx.startBluetoothDevicesDiscovery({

services: [[]],

success: function(startRes) {

console.log('开启搜索成功');

data.isTimeOut = true;

clearTimeout(data.timeoutID);

wx.onBluetoothDeviceFound(

function(devices) {

console.log('扫描onBluetoothDeviceFound返回的内容为 = ' + JSON.stringify(devices));




最后一次编辑于  2019-04-15
回答关注问题邀请回答
收藏

6 个回答

  • Tummy
    Tummy
    2019-04-17

    Android小程序也是直接暴露的ble相关接口,理论上不应该和原生app有太大差别

    ---

    能否加一下微信问问具体的情况?

    2019-04-17
    有用
    回复 3
    • Dreams
      Dreams
      2019-04-17

      您好, 我的微信是li459828762  鄙人从多个小程序测试情况来看  发现小程序的蓝牙相比android原生App蓝牙搜索速度慢很多

      mScanCallback = new ScanCallback() {
      @Override
         public void onScanResult(int callbackType, ScanResult result) {

      android APP 中onScanRsult回调在4秒左右就能把所有蓝牙设备发现, 而小程序那边会经常性搜索3秒左右还没有锁具出现, 10秒左右有些锁具还是没搜索到, 鄙人正在开发的小程序经查遇到

      onBluetoothDeviceFound 回调没有返回任何数据

      2019-04-17
      回复
    • Tummy
      Tummy
      2019-05-07回复Dreams

      原生app是有家过滤参数么?有过滤的话搜索会快很多..加你微信了解下。


      ---

      ps:有进展帖子回复.

      2019-05-07
      回复
    • windsome
      windsome
      2019-05-30

      有进展了吗?

      2019-05-30
      回复
  • Dreams
    Dreams
    2019-04-16

    日志已上传   

    微信号:li459828762

    时间点是2019年4月16日 下午4.48分- 4.50分左右, 出现3次搜索不到设备  2次连接失败


    在这个时间点之前,我测试了6个左右蓝牙相关的小程序,  搜索速度均比原生 App 慢太多, 有时

    onBluetoothDeviceFound

    接口不返回任何数据,并且有些设备过了10s左右都搜索不到,  我司的蓝牙设备每次发广播的间隔低与1秒, 鄙人是一名 android 开发人员, 鄙人开发的 android 版本应用调用的原生接口搜索这些设备均在5秒内全部搜到!  小程序蓝牙搜索和连接还有很大优化空间, 望大佬们优化下!


    2019-04-16
    有用 1
    回复 5
    • 上海小倍软件科技中心
      上海小倍软件科技中心
      2019-05-07

      我也遇到了相同问题. 请问解决没有? 我的微信号: agooou


      2019-05-07
      回复
    • Dreams
      Dreams
      2019-05-07回复上海小倍软件科技中心

      你好 , 我目前没有解决,  从现象上看是小程序内部问题, 期待官方早日解决!

      2019-05-07
      回复
    • windsome
      windsome
      2019-05-20

      发一篇别人文章供你们参考一下吧.


      https://blog.csdn.net/qq_35683545/article/details/79685595

      2019-05-20
      回复
    • windsome
      windsome
      2019-06-05

      我在华为nova4上发现小程序开启扫码蓝牙时,系统日志中有报错.

      06-05 15:16:12.777 25433 25546 I BluetoothAdapter: getBluetoothLeScanner
      06-05 15:16:12.779 25433 25546 I BluetoothAdapter: getBluetoothLeScanner
      06-05 15:16:12.781 25433 25546 D BluetoothAdapter: isLeEnabled(): ON
      06-05 15:16:12.785  1865 26283 D skia    : external skia timerHandler destroy skip because of hasvisit.
      06-05 15:16:12.785 23609 23648 I bt_stack: [INFO:gatt_api.cc(950)] GATT_Register e2f76c73-9ec3-3e4c-6b51-be5124151f9b
      06-05 15:16:12.785 23609 23648 I bt_stack: [INFO:gatt_api.cc(970)] allocated gatt_if=7
      06-05 15:16:12.786 25433 25476 D BluetoothLeScanner: onScannerRegistered() - status=0 scannerId=7 mScannerId=0
      06-05 15:16:12.787 23609 23652 W Bth-btfreeze: BluetoothFreeze:tag: 181  uid: 10151  pid: 25433
      06-05 15:16:12.789  2063  2166 I PGServer: report state:8 event type:1 pid:0 uid:10151 pkg:null to pid: 1121
      06-05 15:16:12.789 23609 23652 E Bth-gatt: GattService:security excepetion
      06-05 15:16:12.789 23609 23652 E Bth-gatt: java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
      06-05 15:16:12.789 23609 23652 E Bth-gatt:  at com.android.bluetooth.Utils.checkCallerHasLocationPermission(Utils.java:507)
      06-05 15:16:12.789 23609 23652 E Bth-gatt:  at com.android.bluetooth.gatt.GattService.startScan(GattService.java:2418)
      06-05 15:16:12.789 23609 23652 E Bth-gatt:  at com.android.bluetooth.gatt.GattService$BluetoothGattBinder.startScan(GattService.java:720)
      06-05 15:16:12.789 23609 23652 E Bth-gatt:  at android.bluetooth.IBluetoothGatt$Stub.onTransact(IBluetoothGatt.java:104)
      06-05 15:16:12.789 23609 23652 E Bth-gatt:  at android.os.Binder.execTransact(Binder.java:739)
      06-05 15:16:12.789  2063  2166 I BluetoothState: new active bluetooth uid: 10151, pid:25433, reason:BLE_SCAN
      06-05 15:16:12.798  1407  1407 D OCTTY   : [hisi_config_uart:216] hisi_config_uart
      06-05 15:16:12.798  1407  1407 D OCTTY   : [hisi_config_uart:286] set install to 2, disable linedisc
      06-05 15:16:12.799  1407  1407 D OCTTY   : [hisi_config_uart:290] Have uninstalled N_HW_BFG Line displine
      06-05 15:16:12.799  1407  1407 D OCTTY   : [set_baud_rate:115] set_baud_rate
      06-05 15:16:12.799  1407  1407 D OCTTY   : [set_baud_rate:146] set_baud_rate() done
      06-05 15:16:12.799  1407  1407 D OCTTY   : [hisi_config_uart:330]Have installed N_HW_BFG Line displine
      06-05 15:16:12.799  1407  1407 E OCTTY   : [main:370] install already set to
      06-05 15:16:12.799  1407  1407 E OCTTY   :
      06-05 15:16:12.873   577  2318 I GRALLOC : getCallingPid=25433, shrFd=31,fmt=0x1,intFmt=0x200000001,btStrd=4352,size=9125888,pid=577
      06-05 15:16:12.873   577  2318 I GRALLOC :   yuv=2,w=1080,h=2064,Stride u=0 v=0,offset u=0 v=0
      06-05 15:16:12.873   577  2318 I GRALLOC :   iova_size=9125888,conUsg=0x300,proUsg=0x300,    strd=1088,[afbc]HdrStrd=1088 PyldStrd=69632 Scrmbl=2,ionhnd = 1
      06-05 15:16:12.877 25433 25759 I iGraphics: [0030080c] opt app: 0
      06-05 15:16:12.893   578   970 W hwcomposer: setGpuFreqBoost:153: boostGpuFreq release !
      06-05 15:16:12.903  1407  1407 D OCTTY   : [hisi_config_uart:216] hisi_config_uart
      06-05 15:16:12.904  1407  1407 D OCTTY   : [hisi_config_uart:286] set install to 2, disable linedisc
      06-05 15:16:12.904  1407  1407 D OCTTY   : [hisi_config_uart:290] Have uninstalled N_HW_BFG Line displine
      06-05 15:16:12.904  1407  1407 D OCTTY   : [set_baud_rate:115] set_baud_rate
      06-05 15:16:12.904  1407  1407 D OCTTY   : [set_baud_rate:146] set_baud_rate() done
      06-05 15:16:12.904  1407  1407 D OCTTY   : [change_baud_rate:161] change_baud_rate
      06-05 15:16:12.904  1407  1407 D OCTTY   : [change_baud_rate:199] change_baud_rate() done
      06-05 15:16:12.904  1407  1407 D OCTTY   : [hisi_config_uart:330]Have installed N_HW_BFG Line displine
      06-05 15:16:12.904  1407  1407 E OCTTY   : [main:370] install already set to
      06-05 15:16:12.904  1407  1407 E OCTTY   :


      2019-06-05
      回复
    • windsome
      windsome
      2019-06-05

      大佬看一下:

      06-05 15:16:12.789 23609 23652 E Bth-gatt: java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results

      2019-06-05
      回复
  • 明净
    明净
    2020-12-17

    怎么弄得?有结果吗?我的P20也是特别慢!

    2020-12-17
    有用
    回复
  • 云斌
    云斌
    2020-01-02

    有结果了么?

    2020-01-02
    有用
    回复
  • 匿名
    匿名
    2019-09-19

    所以最终结果是啥,有结果了吗?

    2019-09-19
    有用
    回复 5
    • Dreams
      Dreams
      2019-09-19
      结果是微信那边的一个Bug 需要closeBluetoothAdapter然后再openBluetoothAdapter才可以搜索到设备 .....
      2019-09-19
      回复
    • 匿名
      匿名
      2019-09-19回复Dreams
      这个我知道,我想知道慢的问题是不是确认了,我这边是两台华为p30都会搜索很慢
      2019-09-19
      1
      回复
    • Dreams
      Dreams
      2019-09-19回复匿名
      这个我反馈给过微信官方 可惜现在还没结果 哎
      2019-09-19
      回复
    • 匿名
      匿名
      2019-09-19回复Dreams

      😭

      2019-09-19
      回复
    • 王琦
      王琦
      2019-10-28
      p30搜索是慢,10秒左右,能解决吗
      2019-10-28
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-04-15

    你好,麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点

    2019-04-15
    有用
    回复 6
    • Dreams
      Dreams
      2019-04-16

      日志已上传   

      微信号:li459828762

      时间点是2019年4月16日 下午4.48分- 4.50分左右, 出现3次搜索不到设备  2次连接失败


      在这个时间点之前,我测试了6个左右蓝牙相关的小程序,  搜索速度均比原生 App 慢太多, 有时

      onBluetoothDeviceFound

      接口不返回任何数据,并且有些设备过了10s左右都搜索不到,  我司的蓝牙设备每次发广播的间隔低与1秒, 鄙人是一名 android 开发人员, 鄙人开发的 android 版本应用调用的原生接口搜索这些设备均在5秒内全部搜到!  小程序蓝牙搜索和连接还有很大优化空间, 望大佬们优化下!

      2019-04-16
      1
      回复
    • 允
      2019-04-17

      你好,我遇到了同样的问题,测试了多个手机,IOS在第一次打开时(手机关机再打开)基本会成功,但是从第二次开始onBluetoothDeviceFound不会返回任何数据,API说部分安卓手机可能会出现这种情况,为什么我这边都出现了,如果说是我的代码有问题,但是又有几个手机测试是成功的

      2019-04-17
      回复
    • windsome
      windsome
      2019-06-05

      小程序如何打开如下权限:

      Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission

      2019-06-05
      回复
    • windsome
      windsome
      2019-06-05

      另外,问一个问题. 微信扫描到设备时,会不会处理rssi,对于rssi小于某个值的会去掉?比如 rssi < -60 时会去掉?

      2019-06-05
      回复
    • windsome
      windsome
      2019-06-05回复windsome

      小程序如何弹出去开启定位权限的框? 不是指wx.openSetting()弹出的框, 那个框就算允许了, 微信的系统设置中没有开启定位,一样会失败.

      2019-06-05
      回复
    查看更多(1)
登录 后发表内容