收藏
回答

BLEPeripheralServer.startAdvertising广播数据包内容不可控

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug BLEPeripheralServer.startAdvertising 微信安卓客户端 7.0.12 2.10.3[380]

本代码片段预期实现内容:

1.点击按钮,BLE外设服务,即BLEPeripheralServer,并进行BLE广播。

2.BLE外设的广播数据内容,根据代码设置为:

1)不可链接;

2)厂商ID设为:0x013A;

3)广播名为:”DigCore“;

4)广播功率:powerLevel: "high"

然而经过多次调试发现,广播数据不受控制:

1)BLE外设无法设置为不可连接;

2)厂商ID无法设置为预期值,而一直是:0x0000进行广播

3)广播名无法删除,只能修改;即如果广播名不设置,小程序服务器是否缓存了上一次的广播名?

4)广播功率出现 0 dBm,而且一个广播包中出现两组广播功率的AD_Structure。

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

1 个回答

  • simonla
    simonla
    2020-03-30

    【1】实际上控制的是android.bluetooth.le.AdvertiseSettings.Builder#setConnectable

    【2】需要输入"0x013A"。另外该版本manufactureData有bug,可以用测试版验证下https://szsupport.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/android_exp__index

    【3】 不会缓存,设置到adapter的deviceName可能不会立刻修改到,但是广播中的deviceName是会立即修改的,另外为了节约广播的数据包,devceiName为blank的话是不会在广播中include deviceName的

    【4】 同2

    2020-03-30
    有用
    回复 4
    • hiconnnn
      hiconnnn
      2020-04-07
      ios不支持manufactureData,需要如何实现呢,android的在微信7.0.13版本已经验证通过了。
      https://developers.weixin.qq.com/community/develop/doc/00062e7ca90e7055e81acad025b400 此链接中的方法,是否可以使用?
      2020-04-07
      1
      回复
    • Dreams
      Dreams
      2020-06-11
      devceiName赋值后就会出现startBLEPeripheralAdvertising:fail:data too large", errCode: 10008
      2020-06-11
      回复
    • 铭
      2023-06-02回复Dreams
      有长度限制,名字不要太长,这个也一样有限制manufactureData
      2023-06-02
      回复
    • 铭
      2023-06-02
      你好,我想问下,广播的间隙性怎么修改
      2023-06-02
      1
      回复
登录 后发表内容
问题标签