收藏
回答

notifyBLECharacteristicValueChange 安卓收不到

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 客户端 7.0.4 2.6.0

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


现在主要是安卓收不到特征值变化的值 ,苹果一直是正常,我安桌手机是最新的oppo reno 10倍变焦版

特征值属性:

properties: {read: false, write: true, notify: true, indicate: false}


我的方法:

wx.notifyBLECharacteristicValueChange({

deviceId,

serviceId,

characteristicId: item.uuid,

state: true,

type: 'notification'})


我就算加type:notification也没起作用

网上有人说,在安卓write指令后,一定要再读一次特征值,要不然onBLECharacteristicValueChange监听不了变化,但我这个特征值是不支持read属性的,所以这种方法对我来说没用。


- 预期表现

通过我多次测试,发现writeBLECharacteristicValue其实是成功了的,通过硬件响应知道的,并且硬件已收到指令,特征值一直在变(我通过苹果设备验证),我是连接的一个心电图检测的硬件设备,当发送一个开始检测命令后,设备会按秒来改变特征值,在IOS设备下一切正常我是能监听到值的改变,但在安桌设备下onBLECharacteristicValueChange方法都没进,我有真机比较苹果和安桌,苹果和安桌最大的差别是苹果在特征值变化前它会进入internal/async_hooks.js中的emitHook方法,我也不知道这个是干嘛用的,但安卓并不会进入这个方法。(write和监听的service不一样)



- 复现路径

因为你们没有我这种设备,你们没办法复现


- 提供一个最简复现 Demo

同上

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

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-05-27

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

    2019-05-27
    有用
    回复 6
    • Kaye
      Kaye
      2019-05-27

      微信号:vencent0324;    上传时间2019-5-27 15:39

      2019-05-27
      回复
    • Kaye
      Kaye
      2019-05-27

      补充一点,特征值的变化每次都是57个字节,我看网上有说微信是限制为80个字节,应该不会有影响吧

      2019-05-27
      回复
    • Tummy
      Tummy
      2019-05-28回复Kaye

      看日志没有什么异常,也有事件正确丢出,Android是不是偶然能收到事件?


      ---

      试试原生ble app有没有问题,减小定位问题的难度。

      https://github.com/search?l=Java&q=ble&type=Repositories


      ps:留个微信号,我加一下你了解下具体情况?没有设备也很难看出来.

      2019-05-28
      回复
    • Kaye
      Kaye
      2019-05-28回复Tummy

      原生的没有问题,我用厂家原生的APP试过了,是可以的,我也问过厂家是不是有什么特殊的东西之类的,厂家说没有,就说开户notify然后监听就可以,我的微信号kaye1022

      2019-05-28
      回复
    • Kaye
      Kaye
      2019-05-30回复Tummy

      人呢?咋没人管了啊!你们不能遇到麻烦的问题就不管了啊!

      2019-05-30
      回复
    查看更多(1)
  • 小仙女
    小仙女
    06-17

    小程序安卓ios都能获取特征值及操作打印,但是打包成app会报错1007当前特征值不支持此操作,然后打印不了

    06-17
    有用
    回复
  • Kaye
    Kaye
    2019-08-03

    最后我找到原因了,那是因为安卓蓝牙每次发送的数据不能超过20字节,但苹果却可以收到,希望我的回复能帮助到别人,后面我和厂商沟通让他们拆包发送数据才彻底解决此问题,以前我在社区见过是说不超过80字节就可以的,不知道现在为什么变成20字节。希望你们官方能重视这种问题,我看到社区有多人反应类似问题,但你们稍遇到麻烦点的问题就躲,真搞不懂你们是什么意思,还说联系我,联系毛线,一个人都没找过我

    2019-08-03
    有用
    回复 2
    • LK
      LK
      2019-11-13
      你好,我的设备是"read":true,
      "write":true,
      "notify":false,
      "indicate":false
      我读是ok 的返回也是ok 但是返回的参数拿不到,value是空对象,是因为notify,indicate 的原因吗?
      2019-11-13
      回复
    • Kaye
      Kaye
      05-17回复LK
      对呀,这两个肯定得有一个是true啊
      05-17
      回复
登录 后发表内容