我写我自己的传感器自卸车,在活动中与在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