微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter_Blue 无法扫描我的设备 我的 BT 扬声器Android

如何解决Flutter_Blue 无法扫描我的设备 我的 BT 扬声器Android

我是 Flutter 的新手,我正在做一个需要蓝牙连接到我的硬件的项目。 据我所知,Flutter_Blue 是这样工作的:

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

我一直在第 2 阶段失败,即扫描设备。 不知何故,我无法通过 scan() 找到我的 Bluetooth_Speaker,我尝试使用不同的扫描模式(低延迟、低能耗、平衡)。

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

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

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

环境:

  • 索尼 XZ2(Android 版本:9)
  • 颤振版本:2.0.5
  • Dart 版本:2.12.3
  • sdk:">=2.7.0
  • Flutter_blue:0.6.3+1
  • IDE:VSCode

编译方式:Flutter run

查看回复后的经验教训:

  1. Bluetooth_Low_Energy(BLE) 无法发现/连接到经典蓝牙。也不是其他方式(经典 -> BLE)。

解决方法

你能用 flutterBlue.startScan(); 代替 scan() 吗?

,

蓝牙有两种类型

  • 经典
  • 低能耗 (LE)

Bluetooth_Low_Energy(BLE) 是一种能耗较低的技术,但同时也会降低传输速度。 经典设备可以提供 24Mbps,而 Low_Energy 只能提供 1Mbps。

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

在这种情况下,Flutter 的 Flutter_Blue 库使用的是 Low_Energy 服务,而蓝牙音箱作为 Classic 设备使用,这就是 Flutter_Blue 无法扫描/发现音箱的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。