Flutter_Blue 无法扫描我的设备。(我的BT音箱)Android

Xia*_*Xia 1 android bluetooth bluetooth-lowenergy android-bluetooth flutter

我是 Flutter 新手,我正在开发一个需要蓝牙连接到我的硬件的项目。据我所知,Flutter_Blue 的工作原理如下:

  1. 获取 Flutter_Blue 实例
  2. 使用 开始扫描scan(),同时挂接一个侦听器来侦听新设备。(这将返回 ScanedDevice,然后将其添加到我的列表中。)
  3. 从我的列表中选择一个我想要连接的设备await device.connect()
  4. 连接成功后,发现其服务device.discoverServices()
  5. for characteristics in service.characteristics从该设备获取特征。
  6. 使用characteristic.read().listen((value){//do something with value});

我在第二阶段(扫描设备)一直失败。我不知何故找不到我的蓝牙扬声器scan(),我尝试使用不同的扫描模式(低延迟、低能耗、平衡)。

我可以轻松找到不属于我的其他设备(但它们不知何故没有名称,所有 ID 都是唯一的)。我尝试使用我朋友的手机作为我的应用程序进行扫描的设备,但仍然没有结果。

通过我的 Android 蓝牙设置页面,我可以在扫描新设备页面中找到蓝牙扬声器(也是我朋友的手机)。

请告诉我出了什么问题,我将非常感激。谢谢。

环境:

  • 索尼 XZ2(安卓版本:9)
  • 颤振版本:2.0.5
  • 飞镖版本:2.12.3
  • SDK:“>=2.7.0 <3.0.0”
  • 扑蓝:0.6.3+1
  • IDE:VSCode

编译方式:flutter run

查看回复后学到的教训:

  1. Bluetooth_Low_Energy(BLE) 无法发现/连接到经典蓝牙。反之亦然(经典 -> BLE)。

Xia*_*Xia 5

蓝牙有两种类型

  • 经典的
  • 低能量(LE)

蓝牙低能耗 (BLE) 是一种能耗较低的技术,但代价是传输速度较慢。经典设备可提供 24Mbps,而 Low_Energy 仅提供 1Mbps。

这两种蓝牙不能互相连接。

在这种情况下,Flutter的Flutter_Blue库使用Low_Energy服务,并且蓝牙扬声器被用作Classic设备,这就是Flutter_Blue无法扫描/发现扬声器的原因。