- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在编写一个简单的 android 应用程序来计算设备 imu 的偏差。在执行此操作时,我遇到了 event.timestamp 值的问题
使用代码:
float dT = (event.timestamp-accel_timestamp)*NS2S;
来自 Android Reference Guide 的示例从四元数计算旋转矩阵。
当我使用 Galaxy Nexus-S 运行代码时,测量之间的 dT 为 0.06~0.07 秒,但是当我在 LG Nexus 4 或 Nexus 7 上运行相同代码时,dT 始终为 0。我知道的问题,Android SensorEvent timestamp issue Nexus 7 时间戳是 unix 时间戳,但连续测量之间的差异不应始终为零。 Nexus 4 和 Nexus 7 都具有相同的 IMU,这可能是如何从 IMU 创建时间戳的错误吗?
最佳答案
哇,好吧,这肯定是个错误!
每个 SensorEvent 的时间戳都被覆盖,就好像它是一个静态变量一样......
当我记录事件发生时的时间戳的字符串时,所有的值都是不同的。
事件以不变的方式存储在数组中。
数组中的每个 SensorEvent 现在都有相同的时间戳,但值数组仍然不同(即,它们不是同一个对象并且包含不同的信息......除了时间戳)。
Google/HTC,请还我生命中的 3 小时!
除非有人能解释这种行为,否则我会提交错误报告。 API 中肯定没有记录.
与此同时,尝试这个解决方案:
import android.hardware.Sensor;
import android.hardware.SensorEvent;
public class UnbrokenSensorEvent {
public long timestamp;
public float[] values;
public Sensor sensor;
public UnbrokenSensorEvent(SensorEvent event){
this.timestamp = event.timestamp;
this.values = event.values;
this.sensor = event.sensor;
}
}
然后在你的监听器中做这样的事情:
ArrayList<UnbrokenSensorEvent> results = new ArrayList<UnbrokenSensorEvent>();
public void onSensorChanged(SensorEvent event) {
results.add(new UnbrokenSensorEvent(event));
}
重构应该很容易,因为 SensorEvent 和 UnbrokenSensorEvent 具有相同的公共(public)字段。如果您需要使用其他 SensorEvent 功能,只需将其放入 Unbroken 版本即可。
这很 hacky,但恕我直言,快速 hack 总比等待 API 更新好!
关于Android SensorEvent 时间戳常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842537/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!