|
@@ -14,6 +14,7 @@ import android.hardware.SensorEventListener;
|
14
|
14
|
import android.hardware.SensorManager;
|
15
|
15
|
import android.os.Binder;
|
16
|
16
|
import android.os.IBinder;
|
|
17
|
+import android.util.Log;
|
17
|
18
|
import android.widget.Toast;
|
18
|
19
|
|
19
|
20
|
import java.io.FileNotFoundException;
|
|
@@ -37,8 +38,10 @@ public class SensorLoggerService extends Service {
|
37
|
38
|
private FileOutputStream stream;
|
38
|
39
|
private OutputStreamWriter writer;
|
39
|
40
|
|
40
|
|
- private int i = 0;
|
41
|
|
- private float[] accelValues, magValues;
|
|
41
|
+ private Timer timer;
|
|
42
|
+
|
|
43
|
+ private volatile int i = 0;
|
|
44
|
+ private float[] accelValues = new float[3], magValues = new float[3];
|
42
|
45
|
|
43
|
46
|
private final SensorEventListener accelListener = new SensorEventListener() {
|
44
|
47
|
|
|
@@ -98,7 +101,7 @@ public class SensorLoggerService extends Service {
|
98
|
101
|
}
|
99
|
102
|
}
|
100
|
103
|
} catch (IOException ex) {
|
101
|
|
- // Ignore
|
|
104
|
+ Log.e(TAG, "Unable to write", ex);
|
102
|
105
|
}
|
103
|
106
|
}
|
104
|
107
|
|
|
@@ -119,17 +122,11 @@ public class SensorLoggerService extends Service {
|
119
|
122
|
|
120
|
123
|
STARTED = true;
|
121
|
124
|
|
122
|
|
- new Timer("Delay timer").schedule(new TimerTask() {
|
123
|
|
-
|
124
|
|
- @Override
|
125
|
|
- public void run() {
|
126
|
|
- init();
|
127
|
|
- }
|
128
|
|
- }, 10000);
|
|
125
|
+ init();
|
129
|
126
|
}
|
130
|
127
|
|
131
|
128
|
public void init() {
|
132
|
|
- try {
|
|
129
|
+ try {
|
133
|
130
|
stream = openFileOutput("sensors.log", MODE_APPEND | MODE_WORLD_READABLE);
|
134
|
131
|
writer = new OutputStreamWriter(stream);
|
135
|
132
|
} catch (FileNotFoundException ex) {
|
|
@@ -144,21 +141,22 @@ public class SensorLoggerService extends Service {
|
144
|
141
|
manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
|
145
|
142
|
SensorManager.SENSOR_DELAY_FASTEST);
|
146
|
143
|
|
147
|
|
- Toast.makeText(getApplicationContext(), "Sensor logger service monitoring...",
|
148
|
|
- Toast.LENGTH_SHORT).show();
|
|
144
|
+ timer = new Timer("Data logger");
|
149
|
145
|
|
150
|
|
- new Timer("Data logger").scheduleAtFixedRate(new TimerTask() {
|
|
146
|
+ timer.scheduleAtFixedRate(new TimerTask() {
|
151
|
147
|
@Override
|
152
|
148
|
public void run() {
|
153
|
149
|
write();
|
154
|
150
|
}
|
155
|
|
- }, 0, 50);
|
|
151
|
+ }, 10000, 50);
|
156
|
152
|
}
|
157
|
153
|
|
158
|
154
|
@Override
|
159
|
155
|
public void onDestroy() {
|
160
|
156
|
manager.unregisterListener(accelListener);
|
161
|
157
|
|
|
158
|
+ timer.cancel();
|
|
159
|
+
|
162
|
160
|
STARTED = false;
|
163
|
161
|
|
164
|
162
|
Toast.makeText(getApplicationContext(), "Sensor logger service stopped",
|