当前位置: 首页 > 知识库问答 >
问题:

如何在Flutter中使用RSSI对蓝牙设备进行分类

张献
2023-03-14

我有一个flutter项目,其中使用了一个名为flutter_blue的库。当我扫描蓝牙设备时,我会得到一个设备列表,以及以分贝(RSSI)为单位测量的信号强度。问题是如何根据RSSI属性对设备列表进行排序,每个设备都有RSSI属性?

下面是我的代码块,我认为我应该按r.rssi进行排序,但我无法做到这一点。

      StreamBuilder<List<ScanResult>>(
                stream: FlutterBlue.instance.scanResults,
                initialData: [],
                builder: (c, snapshot) => Column(
                  children: snapshot.data
                      .map(
                        (r) => ScanResultTile(
                          result: r,
                          onTap: () => Navigator.of(context)
                              .push(MaterialPageRoute(builder: (context) {
                            r.device.connect();
                            return DeviceScreen(device: r.device);
                          })),
                        ),
                      )
                      .toList(),
                ),
              ),

谢谢你读这篇文章。

共有1个答案

卓麒
2023-03-14

您需要在tolist()末尾添加sort()函数,并按照升序或降序编写逻辑

下面是一个例子:

                stream: FlutterBlue.instance.scanResults,
                initialData: [],
                builder: (c, snapshot) => Column(
                  children: snapshot.data
                      .map(
                        (r) => ScanResultTile(
                          result: r,
                          onTap: () => Navigator.of(context)
                              .push(MaterialPageRoute(builder: (context) {
                            r.device.connect();
                            return DeviceScreen(device: r.device);
                          })),
                        ),
                      )
                     .toList()..sort((a,b)=>b.result.rssi.compareTo(a.result.rssi)),
                ),
              ),
 类似资料:
  • deviceName String deviceId String

  • 问题内容: 我正在创建一个应通过蓝牙连接到特定设备的应用程序。 无论设备是否已配对,我都希望我的应用程序与此设备连接。 现在我有这个 但是此功能仅连接到配对的设备。如果我的设备尚未配对,我想将其配对。不知道该怎么做。 有人可以给我任何建议吗? 问题答案: 首次请求权限。 然后使您的设备可发现: 然后创建一个 BroadcastReceiver 来监听系统中的动作: 并通过注册以下 Boardcas

  • 我有一个通过蓝牙连接的配对设备列表。但是我想把它们归类为iPhone或Android。这怎么可能呢?

  • 有没有办法在Android上ping蓝牙设备?Android中没有连接或配对蓝牙设备,但我事先知道设备的MAC地址和PIN。我试图实现的是ping一个MAC地址列表,看看是否有任何设备在范围内。

  • 我正在开发一个Android应用程序,它可以管理多个蓝牙LE设备,如扬声器、照明设备和各种传感器。 为了方便用户,这些设备必须“分组”在一起,并且只能通过单个蓝牙连接访问。 在这种情况下,是编程某种定制中介硬件来作为所需的接口,还是有更好的解决方案?

  • 我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/