问题遇到的现象和发生背景
用flutter开发蓝牙,但无法扫描出电脑、手机、或者其它一些需要pin码配对绑定的蓝牙设备。
试过的flutter插件有三种,无一例外都只能扫描出不要pin码的蓝牙设备,比如AirPods Pro(苹果蓝牙耳塞)、BYD BLE3(比亚迪汽车蓝牙),如果手机上安装了蓝牙调试宝,并且开启了“外围模式”也可以被扫描到(关闭则不行)。
感觉用这些插件扫描出来的蓝牙设备,没有配对绑定这个步骤,直接就是device.connect()……
如果在Java里使用代码device.getType()。会发现这类不需要PIN码配对的蓝牙设备,都会显示2;需要PIN码配对绑定的则显示1。
用代码块功能插入代码,请勿粘贴截图
无。
运行结果及报错内容
无【就不附图了,总之,尽扫描出来些不需要PIN码就能连接的蓝牙设备】
我的解答思路和尝试过的方法
用过的flutter插件有(以下无一例外,全都只能扫描到不需要pin码的):
1、flutter_blue_elves(蓝精灵,官网下载的最新版0.1.9,https://pub.flutter-io.cn/packages/flutter_blue_elves)
2、ble(官网最新版2.0.0,https://pub.flutter-io.cn/packages/ble)
3、flutter_blue(官网最新版0.8.0,https://pub.flutter-io.cn/packages/flutter_blue)
4、flutter_bluetooth_serial: ^0.4.0
Ps:以上1、2、3插件下载下来,都需要改一些东西,可能是flutter更新太快了吧。不改跟本跑不起来。亏了一路坑都踩过来了,但还是扫描不出来!
这倒底是需要改代码?还是说,flutter目前只能干到这个程度?还是我没有用对合适的插件?还是插件我用得不对?
我想要达到的结果
我需要扫描到需要用pin码的,并能向其发送字符串。如下图这样: