蓝牙spp连接成功后,调用socket.sppReadAsync,循环读取设备数据,只会成功读取一次,而后出现异常。问题代码如下:
import { socket } from '@kit.ConnectivityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let clientNumber = -1; // 入参clientNumber由sppAccept或sppConnect接口获取。 let buffer = new ArrayBuffer(1024); let data = new Uint8Array(buffer); let flag = 1; while (flag) { try { socket.sppReadAsync(clientNumber).then((outBuffer: ArrayBuffer) => { buffer = outBuffer; if (buffer != null) { console.info(`sppRead success, data = ${JSON.stringify(buffer)}`); } else { console.error('sppRead error, data is null'); } }); } catch (err) { flag = 0; console.error(`startSppRead errCode: ${(err as BusinessError).code}, errMessage: ${(err as BusinessError).message}`); } }