收藏
回答

getBLEDeviceCharacteristics "errCode":10005 ?

//获取设备特征

const getBLEDeviceServices = (deviceId) => {

    console.log('🚀 ~ 获取设备特征:')

    setTimeout(() => {

        wx.getBLEDeviceServices({

            // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接

            deviceId,

            success: (res) => {

                console.log('🚀 ~ setTimeout ~ res:', res)

                serviceId.value = res.services[2].uuid //选择支持的uuid

                if (deviceId && serviceId.value && res.services[2].uuid) {

                    getBLEDeviceCharacteristics(deviceId, serviceId.value) //获取设备特征

                }

            },

            fail: (res) => {

                console.log('🚀 ~ setTimeout ~ res:', res)

            }

        })

    }, 1000)

}

//进入特征

const getBLEDeviceCharacteristics = (deviceId, service) => {

    setTimeout(() => {

        wx.getBLEDeviceCharacteristics({

            // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接

            deviceId,

            // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取

            serviceId: service,

            success: (res) => {

                for (let i = 0; i < res.characteristics.length; i++) {

                    if (res.characteristics[i].properties.notify === true) {

                        //可通知

                        characteristicId.value = res.characteristics[i].uuid

                    }

                    if (res.characteristics[i].properties.write === true) {

                        //可写 notify也要true

                        writeId.value = res.characteristics[i].uuid

                    }

                }

                setTimeout(() => {

                    if (characteristicId.value) {

                        notifyBLECharacteristicValueChange(deviceId)

                    }

                }, 3000)

            },

            fail: (res) => {

                console.log(res)

            }

        })

    }, 2000)

}这个代码我在app就可以获取特征值,到微信小程序就一直报错,getBLEDeviceCharacteristics "errCode":10005这是什么情况?10005对应没有找到指定特征。这是什么情况求路过大佬帮忙查看一下

回答关注问题邀请回答
收藏

2 个回答

  • 风清雾散云开见日出
    风清雾散云开见日出
    星期二 10:48

    你测试下这个集合下的所有UUID都getBLEDeviceCharacteristics下看看是否报错。

    星期二 10:48
    有用
    回复 7
    查看更多(2)
  • 迪克
    迪克
    星期二 10:19


    获取蓝牙低功耗设备所有服务 你直接获取的数组第二个 这个是你要获取的服务么。

    一般通过要遍历到主服务( isPrimary ) 再获取主服务的所有特征

    你打印下res.services[2].uuid 看看 这个是你们约定的服务uuid么

    星期二 10:19
    有用
    回复 10
    • 过了个羊
      过了个羊
      星期二 10:25
      res.services[2].uuid  这个是约定的uuid,这个在app上会返回写入的uuid
      星期二 10:25
      回复
    • 迪克
      迪克
      星期二 10:26回复过了个羊
      星期二 10:26
      回复
    • 迪克
      迪克
      星期二 10:27回复过了个羊
      这个是我这边写的判断 你试试加上 isPrimary  主服务的参数判断
      星期二 10:27
      回复
    • 过了个羊
      过了个羊
      星期二 10:29回复迪克
      好的 我加上试试
      星期二 10:29
      回复
    • 过了个羊
      过了个羊
      星期二 10:41
      加上还是10005
      星期二 10:41
      回复
    查看更多(5)
登录 后发表内容