所以我使用此代码来获取加速度计数据。当我在 DDMS 模式下检查打印语句正在打印的内容时,我注意到当手机不移动时没有打印任何内容。 IE。它在 table 上。我认为原因是当手机不移动时不会调用 onSensorChanged ,然后当手机再次开始移动时调用 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());
}
最佳答案
您可以让一个线程监听传感器变化(即,onSensorChanged()
会将数据写入全局变量),另一个线程运行计时器(查看 postDelayed
) code>, http://developer.android.com/reference/android/os/Handler.html )将在设定的时间读取它。如果没有变化,那么它将再次读取相同的数据。简单、干净且对电池有益。
关于java - Android:onSensorChanged 的替代方案?当手机背面放在 table 上时(没有移动时)没有加速度计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804142/