0
我對Android非常陌生,目前正在做一個小型相機應用程序,可以節省從相機快門打開到關閉時的陀螺儀/加速度計數據樣本。基本上,我初始化陀螺儀傳感器在圖像捕捉按鈕偵聽器(與camera.takePicture()
)並停止傳感器在ShutterCallback
內。這是我的問題。我應該每次獲取新樣本時將記錄的傳感器數據寫入.txt,還是有一些聰明的方法?捕獲圖像時保存陀螺儀數據
我對Android非常陌生,目前正在做一個小型相機應用程序,可以節省從相機快門打開到關閉時的陀螺儀/加速度計數據樣本。基本上,我初始化陀螺儀傳感器在圖像捕捉按鈕偵聽器(與camera.takePicture()
)並停止傳感器在ShutterCallback
內。這是我的問題。我應該每次獲取新樣本時將記錄的傳感器數據寫入.txt,還是有一些聰明的方法?捕獲圖像時保存陀螺儀數據
我寫了一個應用程序,以最快的速度記錄傳感器數據(SensorManager.SENSOR_DELAY_FASTEST
)。我擔心與執行其他任務時不斷寫入文本文件相關的性能問題,因此我創建了AsyncTask
類來在後臺執行此操作。下面的代碼對我來說工作得很好,即使應用程序運行了幾個小時。在你的情況下,因爲你只想記錄一小段時間,另一個想法是將日誌信息保存在一個集合對象的內存中(例如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; }
}