我对 Android 很陌生,目前正在做一个小相机应用程序,可以保存从相机快门打开到关闭时的陀螺仪/加速度计数据样本。基本上,我在图像捕获按钮侦听器中初始化陀螺传感器(使用camera.takePicture()
)并在ShutterCallback
. 这是我的问题。每次我得到一个新样本时,我应该将记录的传感器数据写入 .txt 还是有一些聪明的方法?
问问题
1081 次
1 回答
1
我编写了一个应用程序,以最快的速度记录传感器数据(SensorManager.SENSOR_DELAY_FASTEST
)。我担心在执行其他任务时不断写入文本文件会导致性能问题,因此我创建了一个AsyncTask
类来在后台执行此操作。以下代码对我来说很好,即使应用程序运行了几个小时。在您的情况下,由于您只想记录一小段时间,另一个想法是将日志信息保存在内存中的集合对象(例如 an ArrayList<>
)中,然后将所有内容记录在ShutterCallback
.
public void LogSensor(long SystemTime, int SensorType, float[] SensorValues) {
String LogString = Integer.toString(SensorType);
for(int i=0; i<SensorValues.length; i++) LogString += "," + SensorValues[i];
(new LogSensor_in_background()).execute(SystemTime+","+LogString);
}
private class LogSensor_in_background extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... LogStrings) {
// do logging
return null; }
}
于 2013-05-30T10:55:16.710 回答