通过低功耗蓝牙,把168k的数据,从手机端发送给我们的设备,成功连接设备之后,第一次发送64个字节,收到设备的回应后,接着发送512个字节,再收到回应后,发送下一个512个字节,直至发完所有数据。
蓝牙数据写入那里已经做好了分包处理,每个包20个字节,且每次间隔25ms再发下一包。
结果发现小程序在ios手机上发完几十个(512个字节)包之后会莫名发生闪退,有时候能发 30 X 512个字节,有时候能发 100、200 X 512 个字节,有时候只能发 十几个包 就会闪退,也就是说发送数据量、以及闪退的位置是随机的,完全搞不明白是怎么回事?试过iphone5S、iphone6P、iphone6s等都有发生闪退的情况。
而Android手机上,发完64个字节,再发1024个字节,就会莫名停止。也是搞不懂发生了什么问题,没有报错,没有异常。
求高人指点
是的,是整个微信崩溃,有时候崩溃次数多了,微信还会提示清缓存、重新登录。
我看到有人也遇到同样的问题,调用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
})
}