收藏
回答

wx.setBLEMTU方法调用失败,设置mtu为200回调失败

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.setBLEMTU 微信安卓客户端 7.0.13 2.11.0

设备小米9 系统Android10,回调结果{errCode: -1, errMsg: "setBLEMTU:fail:internal error"}

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

4 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    发表于移动端
    2020-04-23
    你好,试试把mtu的值设置小点。
    2020-04-23
    有用
    回复 11
    • 王成
      王成
      2020-04-24
      您好,我试过设置小点没报错,但是这里依然有问题,我有两台不一样的蓝牙设备,第一台默认分包大小是185字节,我通过这个API设置185以上的时就会报这个错误,低于或者等于185就不报错,但是当我设置185的时候,导致notify依然收不到数据(机器是185字节分包)结果就是最大设置MTU185不报错,但是满足不了需求
      2020-04-24
      回复
    • 王成
      王成
      2020-04-24
      另一台机器默认分包大小是128字节,通过这个API设置高于131就会报同样的错误,低于或者等于就不报错,设置成131的情况下使用,能正常接收机器分包的128字节数据(正常使用)
      2020-04-24
      回复
    • 王成
      王成
      2020-04-24
      以上两台机器都是根据IOS BLE MTU的规则生产的正在市场上运行的不同厂商生产的终端,Android的这个新出API能否将MTU统一设置成一个固定的较大的数值(比如220左右),而不是现在这样不同机器设置的结果也不一样,和 文档上的说明差距很大
      2020-04-24
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2020-04-26回复王成
      MTU设置是手机设备和蓝牙设备之间发特定的协议包协商的结果,这里并不是小程序这边做了额外限制;所以在协商不成功,或者收发包有异常的情况,只能由开发者这边来尝试调整
      2020-04-26
      回复
    • 王成
      王成
      2020-04-27回复社区技术运营专员-娇华
      是不是意味着我现在这台设置失败的终端,是自身无法协商设置这个值,只能让终端自己调整了吗
      2020-04-27
      回复
    查看更多(6)
  • ZaDa
    ZaDa
    06-23

    我Android 原生开发 mtu 可以设置200以上。但是微信程序设置多少都会返回 -1 setBLEMTU:fail:internal error,我可以肯定设备百分百支持request mtu 操作和200个 byte 以上。为什么微信小程序不行?

    06-23
    有用
    回复
  • 深圳i
    深圳i
    2020-07-16

    我设置30 都失败 返回-1


    2020-07-16
    有用
    回复 1
    • 王成
      王成
      2020-07-16
      跟蓝牙设备有关,这个mtu最终值是取手机允许值和蓝牙终端允许值之前的最小值以及以下,有些蓝牙设备厂商出厂就给了最高23mtu
      2020-07-16
      回复
  • zLw
    zLw
    2020-04-26

    有解决方案么,我华为上也遇到了

    2020-04-26
    有用
    回复 2
    • 王成
      王成
      2020-07-09
      没有方法,这个终端和手机协商的结果,和蓝牙设备的设定有关
      2020-07-09
      回复
    • xph
      xph
      2020-09-15
      如果你的蓝牙设备是BLE4.0的协议栈,那是设置不了的,必须是BLE4.2及以上的协议栈才行,这个是物理链路层限制的。
      2020-09-15
      回复
登录 后发表内容
问题标签