|
@@ -36,7 +36,7 @@ public class SensorLoggerService extends Service {
|
36
|
36
|
private OutputStreamWriter writer;
|
37
|
37
|
|
38
|
38
|
private int i = 0;
|
39
|
|
- private float[] accelValues;
|
|
39
|
+ private float[] accelValues, magValues;
|
40
|
40
|
|
41
|
41
|
private final SensorEventListener accelListener = new SensorEventListener() {
|
42
|
42
|
|
|
@@ -54,16 +54,39 @@ public class SensorLoggerService extends Service {
|
54
|
54
|
|
55
|
55
|
};
|
56
|
56
|
|
|
57
|
+ private final SensorEventListener magneticListener = new SensorEventListener() {
|
|
58
|
+
|
|
59
|
+ /** {@inheritDoc} */
|
|
60
|
+ @Override
|
|
61
|
+ public void onSensorChanged(final SensorEvent event) {
|
|
62
|
+ setMagValues(event.values);
|
|
63
|
+ }
|
|
64
|
+
|
|
65
|
+ /** {@inheritDoc} */
|
|
66
|
+ @Override
|
|
67
|
+ public void onAccuracyChanged(final Sensor sensor, final int accuracy) {
|
|
68
|
+ // Don't really care
|
|
69
|
+ }
|
|
70
|
+
|
|
71
|
+ };
|
|
72
|
+
|
57
|
73
|
public void setAccelValues(float[] accelValues) {
|
58
|
74
|
this.accelValues = accelValues;
|
59
|
75
|
}
|
60
|
76
|
|
|
77
|
+ public void setMagValues(float[] magValues) {
|
|
78
|
+ this.magValues = magValues;
|
|
79
|
+ }
|
|
80
|
+
|
61
|
81
|
public void write() {
|
62
|
82
|
try {
|
63
|
83
|
writer.write(System.currentTimeMillis() + ":" +
|
64
|
84
|
accelValues[SensorManager.DATA_X] + "," +
|
65
|
85
|
accelValues[SensorManager.DATA_Y] + "," +
|
66
|
|
- accelValues[SensorManager.DATA_Z] + "\n");
|
|
86
|
+ accelValues[SensorManager.DATA_Z] + "," +
|
|
87
|
+ magValues[SensorManager.DATA_X] + "," +
|
|
88
|
+ magValues[SensorManager.DATA_Y] + "," +
|
|
89
|
+ magValues[SensorManager.DATA_Z] + "," + "\n");
|
67
|
90
|
|
68
|
91
|
if (++i % 50 == 0) {
|
69
|
92
|
writer.flush();
|
|
@@ -103,6 +126,9 @@ public class SensorLoggerService extends Service {
|
103
|
126
|
manager.registerListener(accelListener,
|
104
|
127
|
manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
|
105
|
128
|
SensorManager.SENSOR_DELAY_FASTEST);
|
|
129
|
+ manager.registerListener(magneticListener,
|
|
130
|
+ manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
|
|
131
|
+ SensorManager.SENSOR_DELAY_FASTEST);
|
106
|
132
|
|
107
|
133
|
Toast.makeText(getApplicationContext(), "Sensor logger service started",
|
108
|
134
|
Toast.LENGTH_SHORT).show();
|