【问题标题】:How to sort Bluetooth devices using RSSI in Flutter如何在 Flutter 中使用 RSSI 对蓝牙设备进行排序
【发布时间】:2021-03-07 12:04:36
【问题描述】:

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

这是我的源代码的链接:

Scan Bluetooth Devices Demo

这是我的代码块,我认为我应该按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(),
                ),
              ),

感谢您阅读本文。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    需要在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)),
                    ),
                  ),
    

    【讨论】:

      猜你喜欢
      • 2015-03-12
      • 1970-01-01
      • 2013-10-31
      • 2015-06-04
      • 1970-01-01
      • 2020-07-02
      • 2021-06-17
      • 2021-07-13
      • 2015-06-01
      相关资源
      最近更新 更多