HarmonyOS 鸿蒙Next 经典蓝牙--sppRead 读取&关闭问题,会闪退

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 经典蓝牙–sppRead 读取&关闭问题,会闪退

public read(callback: Callback<Uint8Array>) {
let dataRead = (dataBuffer: ArrayBuffer) => {
let data = new Uint8Array(dataBuffer);
console.info('BltManager read() data: ’ + data.toString());
callback(data)
//关闭读
try {
socket.off(‘sppRead’, this.clientNumber, dataRead);
} catch (err) {
console.error('BltManager read() off, errCode: ’ + (err as BusinessError).code + ', errMessage: ’ +
(err as BusinessError).message);
}
}
try {
socket.on(‘sppRead’, this.clientNumber, dataRead);
} catch (err) {
console.error('BltManager read() on, errCode: ’ + (err as BusinessError).code + ', errMessage: ’ +
(err as BusinessError).message);
//失败
callback(Uint8Array.of(-1))
}

}
日志信息:

BltManager connectDevice() bluetooth serverSocket Number: 0 BltManager read() data: 0


更多关于HarmonyOS 鸿蒙Next 经典蓝牙--sppRead 读取&关闭问题,会闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

先确认下两端的连接情况

将监听参数拆分开看下,使用可参考文档样例:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/spp-development-guide-V5

更多关于HarmonyOS 鸿蒙Next 经典蓝牙--sppRead 读取&关闭问题,会闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对您提到的HarmonyOS 鸿蒙Next经典蓝牙SPP(Serial Port Profile)读取(sppRead)及关闭时出现的闪退问题,以下是一些可能的原因及处理方法:

  1. 资源未正确释放

    • 确保在关闭蓝牙连接前,所有通过sppRead读取的数据缓冲区及其他相关资源已被正确释放。资源泄露可能导致系统异常,进而引发闪退。
  2. 线程管理不当

    • 检查是否由于多线程操作不当(如竞态条件、死锁等)导致闪退。确保蓝牙读写操作在合适的线程中执行,且线程间通信安全。
  3. 异常处理缺失

    • 审查代码,确保所有可能的异常路径都已妥善处理。对于蓝牙操作,特别是I/O操作,应捕获并处理可能抛出的异常,避免程序崩溃。
  4. 系统兼容性问题

    • 检查您的应用是否兼容当前鸿蒙系统版本。有时,系统更新可能引入与旧版应用不兼容的变更。
  5. 日志分析

    • 利用鸿蒙提供的日志系统,详细记录蓝牙操作过程中的关键信息,以便在闪退时分析原因。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部