2

所以我使用这段代码来获取加速度计数据。当我在 DDMS 模式下检查我的打印语句正在打印什么时,我注意到手机不动时没有打印任何内容。IE。它在桌子上。我认为原因是当手机不动时不会调用 onSensorChanged,然后在手机再次开始移动时调用它。如果我想无论手机是否移动都想捕获数据,我应该使用其他功能吗?有什么选择吗?或任何解决方案?任何帮助表示赞赏。

谢谢!

public void onSensorChanged(SensorEvent event) {  

    StringBuffer buff = new StringBuffer();
    buff.append(String.valueOf(event.timestamp));
    buff.append(comma);
    buff.append(String.valueOf(event.values[0]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[1]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[2]));

    mCurrentFile.println(buff.toString());
    mCurrentFile.write(buff.toString()+ '\n');

    System.out.println( "**" + buff.toString());

}
4

2 回答 2

3

您可以让一个线程监听传感器的变化(即,onSensorChanged()将数据写入全局变量)和另一个线程运行计时器(查看postDelayedhttp://developer.android.com/reference/android/os/Handler. html ),它将在设定的时间读取它。如果没有变化,那么它将再次读取相同的数据。简单,干净,对电池很好。

于 2011-04-27T17:32:06.143 回答
1

如果仅在“传感器发生变化”时调用此方法,请尝试保存执行时读取的值。如果没有调用该方法,这并不意味着这些值是相同的?

于 2011-06-19T03:35:55.383 回答