私はのonCreateでこのような何かを持つ活動で、私自身のセンサーダンパーを書いた:
mStartTime = SystemClock.uptimeMillis()
try {
f = new FileWriter("/sdcard/download/sensorlog.txt");
if (f != null) {
f.append("time;value0;value1;value2\r\n");
}
} catch (IOException e1) {
Log.e(TAG, "Cannot open sensorlog file..");
}
mSensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
mStepListener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}
@Override
public void onSensorChanged(SensorEvent event) {
Sensor sensor = event.sensor;
if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
double value0 = event.values[0];
double value1 = event.values[1];
double value3 = event.values[2];
long time = SystemClock.uptimeMillis() - mStartTime;
try {
if (f != null) {
f.append(time+";"+value0+";"+value1+";"+value2 + "\r\n");
}
} catch (IOException e) {
Log.e(TAG, "Cannot write to file");
}
}
}
};
をこれはあなたのタイムスタンプと3つの値を持つCSV形式のテキストファイルを、提供します。
ps。 SDカードの書き込み権限を忘れることはありません。
また、この最初の宣言:
FileWriter f;
private SensorManager mSensorManager;
private SensorEventListener mStepListener;
をそして
try {
f.close();
} catch (IOException e) {
Log.e(TAG, "Cannot close file");
}
はそんなにありがとう..ファイルをクローズすることを忘れないでください!ちょうどフォローアップの質問、uptimeMillis()は何を返しますか?実行開始からの時間? C#に相当する関数はありますか? (私はC#APIしか持っていない別のセンサーを使用しているので) – Imelza
uptimeMillisは起動後のミリ秒を示します。しかし、開始点を保存して現在の時間を減算するので、CSVファイルに保存される時間は、測定開始からのミリ秒数です。 (あなたの質問に答えた場合は、忘れないでください)) – Barryvdh