Android:替代Onsensorchanged?当手机躺在桌子上时,没有加速度计数据(没有移动时)
-
24-10-2019 - |
题
因此,我正在使用此代码来获取加速度计数据。当我处于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());
}
解决方案
您可以让一个线程聆听传感器更改(即, onSensorChanged()
将数据写入全局变量)和另一个线程运行计时器(查看 postDelayed
, http://developer.android.com/reference/android/os/handler.html)将在设定的时间读取它。如果没有更改,它将再次读取相同的数据。轻松,干净,对电池很好。
其他提示
如果仅在“传感器更改”时调用此方法,请在执行时保存您读取的值。如果未调用该方法,那并不意味着值相同?
不隶属于 StackOverflow