我寫我自己的傳感器自卸車,在活動中與在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");
}
}
}
};
這會給你一個CSV文本文件,用時間戳和3倍的值。
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 2010-12-06 07:03:15