【问题标题】:Getting device orientation (yaw, roll and pitch) in Flutter在 Flutter 中获取设备方向(偏航、滚动和俯仰)
【发布时间】:2019-01-15 20:58:45
【问题描述】:

在 Android 中,我可以使用 GAME_ROTATION_VECTOR 传感器获取设备的偏航、滚动和俯仰。

我需要在 Flutter 中做同样的事情,但除了 sensors 包之外我什么也找不到,它只能访问加速度计和陀螺仪传感器。

我能做什么?我需要自己根据加速度计和陀螺仪计算方向吗?

【问题讨论】:

标签: android rotation flutter sensors gyroscope


【解决方案1】:

不知道这是否仍然相关,因为问题尚未结束,但对于那些寻求答案的人......现在有一个 Flutter Sensors package 可以为您提供所有魔法。

当然,您必须订阅数据流才能获取加速度计和陀螺仪的当前值。

例如:

  @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];
      });
    }));
  }

【讨论】:

  • 不幸的是,这个包不提供偏航(Azimut)
  • 嗯,Yaw 是 Z 轴。 (Y - 俯仰,X - 滚动)
  • 对不起,我在谈论 github.com/aeyrium/aeyrium-sensor 包,关于 'sensors' 包,它不是很方便,因为你一次只能得到一个增量而不是当前值,这意味着你必须从开始的“基础”位置跟踪值,aeyrium-sensor 包不是这种情况,但不幸的是缺少偏航值。
  • 根据文档对 Flutter 包的描述,这些是加速度的“当前”值。不是三角洲。例如:“沿 x 轴的加速力(包括重力),以 m/s^2 为单位测量。”在此处查看更多信息:github.com/flutter/plugins/blob/master/packages/sensors/lib/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
相关资源
最近更新 更多