Problemas Acelerometro

Para dar las gracias debes entrar o registrarte en el foro

Recién llegado
Recién llegado
Mensajes: 1 Agradecido: 0
13 Sep 2012, 20:24# 1

Buenos Dias,estaba creando una app que recogiese los datos del acelerometro y los guardase en un .txt en el movil,emplee un while para recoger 10 valores,pero no se porque siempre me recoge el mismo valor de la aceleracion que existe al darle al click...lo he intentado todo porque quiero que me de 10 valores diferentes a lo largo del tiempo y nada...dejo el codigo por si alguien pudiese decirme el fallo que estoy teniendo..Muchas Gracias de antemano!!
package com.dani;


import static android.hardware.SensorManager.DATA_X;
import static android.hardware.SensorManager.DATA_Y;
import static android.hardware.SensorManager.DATA_Z;
import static android.hardware.SensorManager.SENSOR_ACCELEROMETER;
import static android.hardware.SensorManager.SENSOR_DELAY_UI;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;



import android.app.Activity;

import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;



@SuppressWarnings("deprecation")
public class Recolector2 extends Activity implements SensorListener, OnClickListener, Runnable{
// GUI controls


EditText txtData;
Button btnWriteSDFile;
Button btnReadSDFile;
Button btnClose;
private SensorManager sensorMgr;

private float x, y, z,w;
private float cx, cy, cz;
private long lastUpdate = -1;


private TextView xLabel;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recolector2);

txtData = (EditText) findViewById(R.id.txtData);
//txtData.setHint("Enter some lines of data here...");
xLabel = (TextView) findViewById(R.id.x_Label);



}

protected void onPause() {
super.onPause();

sensorMgr.unregisterListener(this, SENSOR_ACCELEROMETER);
sensorMgr = null;
cx =0 ;
cy = 0;
cz = 0;
}

@Override
protected void onResume() {
super.onResume();

sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
boolean accelSupported = sensorMgr.registerListener(this,
SENSOR_ACCELEROMETER,
SENSOR_DELAY_UI);

if (!accelSupported) {
// on accelerometer on this device
sensorMgr.unregisterListener(this, SENSOR_ACCELEROMETER);

}
}

// from the android.hardware.SensorListener interface
public void onAccuracyChanged(int sensor, int accuracy) {


}


// from the android.hardware.SensorListener interface
public void onSensorChanged(int sensor, float[] values) {

long curTime = System.currentTimeMillis();



if (lastUpdate == -1 || (curTime - lastUpdate) > 200) {
lastUpdate = curTime;


try {


FileWriter fstream = new FileWriter("/mnt/sdcard/mysdfile.txt");
BufferedWriter out = new BufferedWriter(fstream);

int i = 0;

x = values[DATA_X];
y = values[DATA_Y];
z = values[DATA_Z];
xLabel.setText(String.format("X: %+2.5f (%+2.5f)",
(x + cx), cx));
int num_muestreo=0;
if ((num_muestreo < 10)) {// temporizar como sea!!
Log.e("en IF", Integer.toString(num_muestreo));

++num_muestreo;
String valores= String.format("X: %+2.5f (%+2.5f)", (x + cx), cx)
+ "n";

out.write(valores);
}
out.close();


} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();


}//endwhile



btnReadSDFile = (Button) findViewById(R.id.btnReadSDFile);
btnReadSDFile.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
// write on SD card file data in the text box
try {
File myFile = new File("/mnt/sdcard/mysdfile.txt");
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(
new InputStreamReader(fIn));
String aDataRow = "";
String aBuffer = "";
while ((aDataRow = myReader.readLine()) != null) {
aBuffer += aDataRow + "\n";
}
txtData.setText(aBuffer);
myReader.close();
Toast.makeText(getBaseContext(),
"Done reading SD 'mysdfile.txt'",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}// onClick
}); // btnReadSDFile


btnClose = (Button) findViewById(R.id.btnClose);
btnClose.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
// clear text box
finish();
}
}); // btnClose
}
}// onCreate

@Override
public void run() {
// TODO Auto-generated method stub

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
}

Gracias  
Etiquetado en: