android - 无法理解文档中的 Android 示例

标签 android

我正在尝试了解 Android 的 Sensor.TYPE_ACCELEROMETER 文档: 它给出了这个例子:

很明显,为了测量设备的实际加速度,必须消除重力的影响。这可以通过应用高通滤波器来实现。相反,可以使用低通滤波器来隔离重力。

public void onSensorChanged(SensorEvent event)
{
      // alpha is calculated as t / (t + dT)
      // with t, the low-pass filter's time-constant
      // and dT, the event delivery rate

      final float alpha = 0.8;

      gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
      gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
      gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

      linear_acceleration[0] = event.values[0] - gravity[0];
      linear_acceleration[1] = event.values[1] - gravity[1];
      linear_acceleration[2] = event.values[2] - gravity[2];
 }

But it says:
    All values are in SI units (m/s^2)
    values[0]: Acceleration **minus Gx** on the x-axis
    values[1]: Acceleration **minus Gy** on the y-axis
    values[2]: Acceleration **minus Gz** on the z-axis

那么,我应该从加速度计传感器检索到的值中移除重力,还是重力已经移除。

我的意思是,该示例使用了称为重力 [2] 的东西并使用了加速度计,但是当我阅读文档时它说加速度计返回的值已经包含重力。这是我不明白的。

我假设 gravity[] 是来自重力传感器的值,对吗? 顺便说一句,有什么地方可以详细了解这两个新传感器的工作原理? TYPE_LINEARACCELERATION 和 TYPE_ROTATIONVECTOR

提前致谢。吉列尔莫。

最佳答案

我没有完全理解你的问题..但是如果你想使用传感器重力必须在那里。 只需再次阅读文档。他们已经描述了您的查询。

如果您想了解传感器的基本规则,请遵循这个很棒的教程。

Android Sensor Tutorial

关于android - 无法理解文档中的 Android 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936379/

相关文章:

Android ormlite : off the uithread

java - 从字节数组创建列表

android - 定义操作栏溢出项

android - APK app-debug-unaligned.apk 打包过程中文件重复

android - 使用按钮创建 EditText

android - Android 中文本的 Arial 字体

android:animateLayoutChanges 在更改 TextView 的 maxLines 时在 RecyclerView 中不起作用

android - 我应该将所有 Android View 属性放入样式中吗?

android - 如何在android studio中用内部模块替换外部库依赖项

android - 从 Android 应用程序在 Django 中保存图像