Android:替代Onsensorchanged?当手机躺在桌子上时,没有加速度计数据(没有移动时)

StackOverflow https://stackoverflow.com/questions/5804142

因此,我正在使用此代码来获取加速度计数据。当我处于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)将在设定的时间读取它。如果没有更改,它将再次读取相同的数据。轻松,干净,对电池很好。

其他提示

如果仅在“传感器更改”时调用此方法,请在执行时保存您读取的值。如果未调用该方法,那并不意味着值相同?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top