因此,我试图获取所有蓝牙设备(特别是手机)的列表,但Flutter似乎没有看到这些手机。我在按下按钮时调用了此方法,只是为了测试输出的内容。这是它的代码
//Listen to scan results
flutterBlue.startScan(timeout: Duration(seconds: 4));
var subscription = flutterBlue.scanResults.listen((scanResult) {
for (ScanResult scan in scanResult) {
BluetoothDevice device = scan.device;
print('${device.name} found! rssi: ${scan.rssi}dBm');
}
});
按下按钮后,我得到了:
I/flutter (12864): Device1 found! rssi: -94dBm
I/flutter (12864): Device1 found! rssi: -94dBm
I/flutter (12864): found! rssi: -70dBm
I/flutter (12864): Device1 found! rssi: -94dBm
I/flutter (12864): found! rssi: -70dBm
I/flutter (12864): Jabra Evolve 75e found! rssi: -70dBm
I/flutter (12864): Device1 found! rssi: -94dBm
I/flutter (12864): found! rssi: -70dBm
I/flutter (12864): Jabra Evolve 75e found! rssi: -70dBm
I/flutter (12864): Inspire HR found! rssi: -86dBm
有些奇怪的事情正在发生。我似乎收到重复的清单,并且似乎有一台没有名称的设备。但是启用了发现功能的电话没有显示。我期望这样的事情:Moto G5 found! rssi:##dBm
我也直接连接到电话,并尝试列出所有连接的设备,但没有运气:
for (BluetoothDevice device in await flutterBlue.connectedDevices) {
print('Connected device: ${device.name} ${device.id}');
});
输出:
D/FlutterBluePlugin(12864): mDevices size: 0
D/FlutterBluePlugin(12864): mDevices size: 0
I/Surface (12864): opservice is null false
flutter_blue是否不支持扫描手机?我刚刚开始使用它,所以我不确定自己在做什么。
感谢您的帮助!
我的理解是,当手机被发现时,它不一定会做为BLE外围设备做广告。您是否希望将其视为BLE外设?如果是这种情况,那么我认为您需要在实现BLE外设并做广告的电话上运行应用程序。
您是否尝试过运行模拟外围设备的应用程序?