私はAndroidを初めて使用し、現在、カメラのシャッターが開いてから閉じるまでの瞬間のジャイロスコープ/加速度計データサンプルを保存できる小さなカメラアプリを実行しています。基本的には、画像キャプチャボタンリスナーでジャイロセンサーを初期化し( でcamera.takePicture()
)、 でセンサーを停止しますShutterCallback
。これが私の質問です。新しいサンプルを取得するたびに、記録されたセンサー データを .txt に書き込む必要がありますか、それとも何か巧妙な方法がありますか?
質問する
1081 次
1 に答える
1
最速の速度でセンサー データをログに記録するアプリを作成しました ( 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; }
}
于 2013-05-30T10:55:16.710 に答える