1***@qq.com
1***@qq.com
  • 发布:2020-10-12 17:24
  • 更新:2021-04-28 11:20
  • 阅读:2215

【报Bug】获取蓝牙设备服务报错 { "errMsg": "getBLEDeviceServices:fail no connection", "errCode": 10004 }

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.13

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 华为

手机机型: HUAWEI P10

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

 /
     连接设备
    
/
    createBLEConnection() {
        //设备deviceId
        let deviceId = this.deviceId;
        let self = this;
        uni.createBLEConnection({
       // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
       deviceId,
       success: res => {
console.log("设备连接成功!");
            //延迟1.5s获取设备的services
            setTimeout(function() {
                console.log("获取设备的services");
                self.getBLEDeviceServices();
            }, 3000);
        },
        fail: res => {
             console.log(JSON.stringify(res));
        console.log("设备连接失败!");
       }
    });
  },
  /

  获取设备的服务ID
  
/
 getBLEDeviceServices() {
console.log(this.deviceId,'获取设备服务id')
      let deviceId = this.deviceId;
      let serviceList = [];
      let self = this;
      uni.getBLEDeviceServices({
          // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
          deviceId,
          success: res => {
              console.log(JSON.stringify(res));
              serviceList = res.services;
              for (let i = 0; i < serviceList.length; i++) {
                  let service = serviceList[i];
                   console.log(JSON.stringify(service) + "----serviceID:" + service.uuid);
                   //比对service是否是FFF0服务 "00001101-0000-1000-8000-00805F9B34FB"
//ios中为uuid 安卓中为设备的MAC地址 self.primaryUUID
                   if (service.uuid.indexOf("00001101-0000-1000-8000-00805F9B34FB") != -1) {
                      self.serviceId = service.uuid;
                      console.log("设备的serviceId: " + self.serviceId);
                      //开始获取指定服务的特征值
                      self.getBLEDeviceCharacteristics();
                      break;
                        }
                    }
                },
                fail: res => {
                    console.log('获取设备的服务ID失败 device services:', res)
                }
            });
     },

预期结果:

services:设备服务列表

实际结果:

{"errMsg":"getBLEDeviceServices:fail no connection","errCode":10004}

bug描述:

蓝牙设备连接成功后,获取蓝牙服务时报错1004

2020-10-12 17:24 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

我也是同样的问题解决了吗

  • 木杉丶

    10004 no service 没有找到指定服务 官方都连错误都给你提示出来了,明显就是服务找不到

    2021-04-28 11:22

  • lidope

    我也是 1.5秒不够 我延迟了7秒就可以了

    2021-05-14 10:23

  • 3***@qq.com

    回复 木杉丶: 你没有遇到就不要随便质疑别人的问题,我也遇到相同问题,相同设备,大多数情况都能获取到,有时候就是不行,重启app,又可以了,应该是api有BUG

    2022-08-17 10:50

该问题目前已经被锁定, 无法添加新回复