Flutter,如何在 Flutter 应用中显示蓝牙设备名称?

问题描述 投票:0回答:2

我目前正在开发一个需要连接蓝牙设备的 Flutter 应用程序。我正在使用 flutter_blue 包来处理连接。

我的问题是我无法在应用程序中显示某些蓝牙设备的名称。我注意到只显示电视的名称,而不显示其他设备的名称。我的主要目标是连接到 ESP32 微控制器。

这是我已经尝试过的:

-我检查了我的手机是否可以在应用程序之外检测到这些蓝牙设备。 - 我查阅了flutter_blue包的文档并在论坛上搜索了类似的问题,但没有找到解决方案。 -我验证了AndroidManifest.xml文件中的蓝牙权限。 -我预计所有检测到的蓝牙设备都会列出其名称。但是,有些设备不可见。

对于解决在我的 Flutter 应用程序中显示蓝牙设备名称的问题,您有什么建议吗?

非常感谢您的帮助!

android flutter bluetooth-lowenergy visibility esp32
2个回答
1
投票

蓝牙 LE 设备可以(但不是必须)在广告 PDU 中传输其名称。如果没有可用的名称,可以使用设备的 MAC 地址来代替。


0
投票

有几种可能性,您可能需要重新启动设备,您可能需要将设备置于“发现模式”,您的手机可能已经自动连接,另一个应用程序可能已经连接到您的手机,可能已经连接到你的设备 尝试查看已连接的设备:

代码示例:

//Search already connected devices, including devices
// connected to other apps
 List<BluetoothDevice> system = await 
 FlutterBluePlus.connectedSystemDevices;
 for (var d in system) {
 print('${r.device.localName} already connected to! ${r.device.remoteId}');
   if (d.localName == "myBleDevice") {
     await r.connect(); // must connect our app
     }
   }

。也许您的扫描过滤器是错误的。 尝试删除所有扫描过滤器,为了让 withServices 工作,您的设备必须主动通告它支持的 serviceUUID。

© www.soinside.com 2019 - 2024. All rights reserved.