蓝牙数据传输 ios小程序闪退、安卓手机只能发送两包数据
发布于 5 年前 作者 ming65 13350 次浏览 来自 问答

通过低功耗蓝牙,把168k的数据,从手机端发送给我们的设备,成功连接设备之后,第一次发送64个字节,收到设备的回应后,接着发送512个字节,再收到回应后,发送下一个512个字节,直至发完所有数据。

蓝牙数据写入那里已经做好了分包处理,每个包20个字节,且每次间隔25ms再发下一包。

结果发现小程序在ios手机上发完几十个(512个字节)包之后会莫名发生闪退,有时候能发 30 X 512个字节,有时候能发 100、200 X 512 个字节,有时候只能发 十几个包 就会闪退,也就是说发送数据量、以及闪退的位置是随机的,完全搞不明白是怎么回事?试过iphone5S、iphone6P、iphone6s等都有发生闪退的情况。

而Android手机上,发完64个字节,再发1024个字节,就会莫名停止。也是搞不懂发生了什么问题,没有报错,没有异常。

求高人指点

2 回复

是的,是整个微信崩溃,有时候崩溃次数多了,微信还会提示清缓存、重新登录。

我看到有人也遇到同样的问题,调用wx.writeBLECharacteristicValue写入超过40000+个byte就会崩溃。

我也这么TEST了一下,果然是:buffer定义为4个字节,如:10101010,是不是wx.writeBLECharacteristicValue

写入的数据量有限制?

for (let i = 0;i < 10000; ++i) {

    wx.writeBLECharacteristicValue({

        deviceId: xxxxx,

        serviceId: xxxxx,

        characteristicId: xxxxx,

        value: buffer

    })

}

Hi, iOS 微信闪退是整个微信崩溃么? Android 莫名停止是什么表现,也帮忙打多点日志定位下是停在什么地方。

回到顶部