接收后台数据(flutter_reactive_ble)



我有一个arduino nano 33 ble,它每秒钟左右从传感器发送数据。现在我也有一个应用程序,用Flutter和flutter_reactive_ble来接收数据。问题是,我需要继续在后台接收数据,但我太缺乏经验与Dart/Flutter,所以我有麻烦做到这一点。现在我正在使用一个实现上发现https://github.com/ubiqueIoT/flutter-reactive-ble-example我正在使用subScribeToCharacteristic方法。我的理解是,只有当屏幕上有东西时,它才会检查新数据(使用StreamBuilder)。是否有一种方法可以在后台对数据执行一些基本的数学操作,并将其全部转储到数组中?我读了关于分离和其他一些有趣的技术,但我想知道是否有一个更简单的解决方案,因为那些看起来有点太难了。我看到,显然,如果我不完全关闭我的应用程序(iOS)有一种方法,让它继续接收数据一段时间,如15-30分钟,这足以满足我的目的,但没有代码/示例/等。

我试图将流从StreamBuilder中取出,并在Widget构建的主体中接收数据,但没有任何工作,我停止接收任何数据。

提前感谢!

这是一个很好的起点,你只需使用这个插件

import 'package:flutter_background_geolocation/flutter_background_geolocation.dart'
as bg;
// Initialize the plugin.
bg.BackgroundGeolocation.ready(bg.Config(
desiredAccuracy: bg.Config.DESIRED_ACCURACY_HIGH,
distanceFilter: 10.0,
stopOnTerminate: false,
startOnBoot: true,
));
// Start tracking location in the background.
bg.BackgroundGeolocation.start();
// Subscribe to the BLE device's characteristic to receive data.
bg.BackgroundGeolocation.subscribeToCharacteristic(
'DEVICE_ID',
'CHARACTERISTIC_ID',
(bg.CharacteristicEvent event) {
// Do some basic math operations on the data.
double data = event.value;
double result = data * 2 + 3;
// Dump the data to an array.
List<double> dataArray = [result];
// Do something with the data (e.g., save it to a database, send it to a server, etc.).
},
);

相关内容

  • 没有找到相关文章

最新更新