Flutter - Activity Tracker App - 步数,upstairs/downstairs,固定
Flutter - Activity Tracker App - steps, upstairs/downstairs, stationary
我想使用 Flutter 创建一个应用程序来跟踪用户当前的 activity 状态——无论他们是在上楼梯还是下楼梯,或者他们是在走路还是静止不动。我使用 Flutter 的原因是因为它需要集成到由另一个团队管理的现有 Flutter 应用程序中。
我是软件开发新手。
我想使用 phone 传感器:陀螺仪、加速度计和气压计。
我可以知道从哪里开始吗?例如。有用的包和API,平台渠道?
您可以使用包 https://pub.dev/packages/sensors
示例代码 https://github.com/flutter/plugins/blob/master/packages/sensors/example/lib/main.dart
代码片段
@override
Widget build(BuildContext context) {
final List<String> accelerometer =
_accelerometerValues?.map((double v) => v.toStringAsFixed(1))?.toList();
final List<String> gyroscope =
_gyroscopeValues?.map((double v) => v.toStringAsFixed(1))?.toList();
final List<String> userAccelerometer = _userAccelerometerValues
?.map((double v) => v.toStringAsFixed(1))
?.toList();
@override
void initState() {
super.initState();
_streamSubscriptions
.add(accelerometerEvents.listen((AccelerometerEvent event) {
setState(() {
_accelerometerValues = <double>[event.x, event.y, event.z];
});
}));
_streamSubscriptions.add(gyroscopeEvents.listen((GyroscopeEvent event) {
setState(() {
_gyroscopeValues = <double>[event.x, event.y, event.z];
});
}));
_streamSubscriptions
.add(userAccelerometerEvents.listen((UserAccelerometerEvent event) {
setState(() {
_userAccelerometerValues = <double>[event.x, event.y, event.z];
});
}));
}
我想使用 Flutter 创建一个应用程序来跟踪用户当前的 activity 状态——无论他们是在上楼梯还是下楼梯,或者他们是在走路还是静止不动。我使用 Flutter 的原因是因为它需要集成到由另一个团队管理的现有 Flutter 应用程序中。
我是软件开发新手。 我想使用 phone 传感器:陀螺仪、加速度计和气压计。 我可以知道从哪里开始吗?例如。有用的包和API,平台渠道?
您可以使用包 https://pub.dev/packages/sensors
示例代码 https://github.com/flutter/plugins/blob/master/packages/sensors/example/lib/main.dart
代码片段
@override
Widget build(BuildContext context) {
final List<String> accelerometer =
_accelerometerValues?.map((double v) => v.toStringAsFixed(1))?.toList();
final List<String> gyroscope =
_gyroscopeValues?.map((double v) => v.toStringAsFixed(1))?.toList();
final List<String> userAccelerometer = _userAccelerometerValues
?.map((double v) => v.toStringAsFixed(1))
?.toList();
@override
void initState() {
super.initState();
_streamSubscriptions
.add(accelerometerEvents.listen((AccelerometerEvent event) {
setState(() {
_accelerometerValues = <double>[event.x, event.y, event.z];
});
}));
_streamSubscriptions.add(gyroscopeEvents.listen((GyroscopeEvent event) {
setState(() {
_gyroscopeValues = <double>[event.x, event.y, event.z];
});
}));
_streamSubscriptions
.add(userAccelerometerEvents.listen((UserAccelerometerEvent event) {
setState(() {
_userAccelerometerValues = <double>[event.x, event.y, event.z];
});
}));
}