文章目录
我们在上一章回中介绍了BLE三方包相关的内容,本章回中将介绍 如何解决BLE包中的错误.闲话休提,让我们一起Talk Flutter吧。
概念介绍
我们在上一章回中了三个BLE包相关的知识,不过在使用这些BLE包的过程中并不是一帆风顺,本章回中将分享如何解决包中遇到的问题。这里提到的包主要指flutter_reactive_ble这个包,因为在使用包中的API时出现了无法停止搜索BLE的现象,还有就是包的Demo也有错误,不解决该错误的话无法使用包中的功能,本章回中将详细介绍解决错误的方法,并且分享一些解决错误的经验。
解决方法
无法停止扫描
我在使用API中的scanForDevices()方法启动扫描设备功能后无法停止,而且该包也没有提供停止扫描的API,分析代码后发现scanForDevices()方法返回的是Stream对象,因此准备使用StreamSubscription类的cancel()方法来管理扫描返回的Stream,进而达到停止扫描的目的,结果仍然无法停止。在stackoverfollow上发现也有其他人遇到了和我一样的问题,回答人员是这个包的开发人员,回答内容和我的思路相同,但是确实不起作用。
我发现包的Demo程序带有停止扫描的功能,分析其中的源代码后发现,也是使用StreamSubscription类的cancel()方法来停止扫描,不过还添加了相关的状态管理。我估计是
本文介绍了在使用Flutter的BLE包时遇到的无法停止扫描和无法使用数据读写功能的问题,以及具体的解决方法。通过分析源代码和Demo程序,提出使用封装好的类来管理扫描,并跳过Provider直接传递共享数据来解决读写问题。强调了遇到错误时要通过调试和分析来寻找解决方案。
订阅专栏 解锁全文
1191

被折叠的 条评论
为什么被折叠?



