I have a simple app the I created. I want to write the accelerometer data onto a text file that I create. I've used the following code snippet, but when I check my file, I am not able to get the values writen inside it. I'm not sure what I'm doing wrong. Thank you in advance
P.S I am new to Android
package com.example.walkpatteranalyser;
import com.example.walkpatteranalyser.R;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import android.R.string;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private FileWriter Writer;
char co_or_x;
char co_or_y;
char co_or_z;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
public void onStartClick(View view) {
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
Toast.makeText(getApplicationContext(), "Started writing to myfile.txt", Toast.LENGTH_SHORT).show();
}
public void onStopClick(View view) {
mSensorManager.unregisterListener(this);
Toast.makeText(getApplicationContext(), "Stopped", Toast.LENGTH_SHORT).show();
}
protected void onResume() {
super.onResume();
}
protected void onPause() {
super.onPause();
if( Writer != null) {
try {
Writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
try {
File root = new File(Environment.getExternalStorageDirectory(), "Accleration_Data");
if (!root.exists()) {
root.mkdirs();
}
// BufferedWriter out = new BufferedWriter(new FileWriter("text.txt"));
// out.write(Float.toString(event.values[0]) + Float.toString(event.values[1]) + Float.toString(event.values[2]) );
// out.close();
File gpxfile = new File(root, "text.txt");
FileWriter writer = new FileWriter(gpxfile);
// writer.append(sBody);
BufferedWriter out = new BufferedWriter(new FileWriter("text.txt"));
out.write(Float.toString(event.values[0]) + Float.toString(event.values[1]) + Float.toString(event.values[2]) );
out.close();
// writer.flush();
// writer.close();
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
}