我有一个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(),
),
),
谢谢你读这篇文章。
您需要在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/