2010-12-01 23 views
0

有没有人曾在SensorDump Android应用上工作过?我正在尝试从手机获取Accelerometer值,并且可以将其转储到我的计算机上的CSV文件中。不过,我想为我的值添加时间戳,并且SensorDump不提供此值。访问SensorDump API - Android

我在网上找不到任何文档,我想知道是否有人试图修改它,或者如果有其他任何应用程序在那里执行相同的操作(即允许我将传感器值写入文件,并带有时间戳)。

谢谢!

回答

0

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

太谢谢你了!只是后续问题,uptimeMillis()返回什么?从执行开始的时间?在C#中有相同的功能吗? (因为我使用另一个只有C#API的传感器) – Imelza 2010-12-06 07:03:15