2010-12-01 13 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"); 
       } 

      } 
     } 

    }; 

をこれはあなたのタイムスタンプと3つの値を持つCSV形式のテキストファイルを、提供します。

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

+0

uptimeMillisは起動後のミリ秒を示します。しかし、開始点を保存して現在の時間を減算するので、CSVファイルに保存される時間は、測定開始からのミリ秒数です。 (あなたの質問に答えた場合は、忘れないでください)) – Barryvdh

関連する問題