2012-09-20 3 views
0

안녕하세요 저는 현재 가속도계에 액세스하여 그래프가 현재 작동하지 않고 그래프가 작동하지 않는 프로젝트를 진행하고 있습니다. 추론이 확실하지 않은 경우 어떤 도움이 크게 도움이 될 것입니다. 고맙습니다.Android Accelerometer가 Null (제로) 값을 출력 중입니다.

이 프로그램은 30 초 동안 데이터를 기록한 다음 그래프를 출력하여 모든 3 축에 대해 0 값을 계속 출력하는 방식이 필요합니다.

강령 :

public class AccelerometerData extends Activity implements SensorEventListener { 

public float _x; 
public float _y; 
public float _z; 

boolean senseA = false; 

int Time = 30; 
int samplerate=10; 
int sampleSize=(Time*1000)/samplerate; 
public double[] X = new double[sampleSize];   
public double[] Y = new double[sampleSize]; 
public double[] Z = new double[sampleSize]; 

Sensor accelerometer; 
SensorManager sm; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    sm=(SensorManager)getSystemService(SENSOR_SERVICE); 
    accelerometer=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_FASTEST); 

    final Timer updateTimer = new Timer(); 
    updateTimer.scheduleAtFixedRate(new TimerTask(){ 
     public void run(){ 
      if (senseA= true){ 
       for (int i = 0; i < sampleSize; i++){ 
        X[i] = _x;           
        Y[i] = _y; 
        Z[i] = _z;             
     } 

      }              
     } 
    }, 0, samplerate); 

    } 

public void onAccuracyChanged(Sensor sensor, int accuracy) { 
    // TODO Auto-generated method stub 

} 

public void onSensorChanged(SensorEvent event) { 
    // TODO Auto-generated method stub 
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){ 
     _x = event.values[0]; 
     _y = event.values[1]; 
     _z = event.values[2]; 
     senseA = true; 
     } 

} 

}

출력 된 값

은 다음과 같습니다 :
AccelerometerData data= new AccelerometerData(); 

double[] dataX = data.X; 

double[] dataY = data.Y; 

double[] dataZ = data.Z; 

int length = data.sampleSize; 

가에서 읽기 위해 사전에 시간을

답변

0

코드를 주셔서 감사합니다 가속도계는 괜찮아 보입니다.

그러나 대신

AccelerometerData data= new AccelerometerData(); 

와 함께 활동을 시작할 수 없습니다, 당신은 텐트, 예를 들어, 함께 활동을 시작할 수 있습니다

startActivity(new Intent(this, AccelerometerData.class)); 

또한 가속도계 값을 저장하는 방법은 위변부입니다. X, Y, Z 배열의 i 번째 위치에 i 번째 읽기를 저장한다고 가정합니다. 대신 배열의 모든 요소를 ​​최신 값으로 덮어 쓰게됩니다.

+0

감사합니다. 네가 뭘 이해하는지 잠시 생각했다. – user1686491

관련 문제