1+ import android.content.Context ;
2+ import android.hardware.Sensor ;
3+ import android.hardware.SensorManager ;
4+ import android.hardware.SensorEvent ;
5+ import android.hardware.SensorEventListener ;
6+
7+ Context context;
8+ SensorManager manager;
9+ Sensor sensor;
10+ SensorListener listener;
11+
12+ int offset = - 1 ;
13+ int steps;
14+
15+ void setup () {
16+ fullScreen();
17+ frameRate (1 );
18+ Context context = (Context ) surface. getComponent();
19+ manager = (SensorManager )context. getSystemService(Context . SENSOR_SERVICE );
20+ sensor = manager. getDefaultSensor(Sensor . TYPE_STEP_COUNTER );
21+
22+ textFont (createFont (" Roboto" , 36 ));
23+ fill (255 );
24+ }
25+
26+ void draw () {
27+ background (0 );
28+ translate (0 , + insetBottom/ 2 );
29+ if (! ambientMode) {
30+ String str = steps + " steps" ;
31+ float w = textWidth (str);
32+ text (str, (width - w)/ 2 , height / 2 + 24 );
33+ }
34+ }
35+
36+ public void onResume () {
37+ super . onResume();
38+ Context context = (Context ) surface. getComponent();
39+ manager = (SensorManager )context. getSystemService(Context . SENSOR_SERVICE );
40+ sensor = manager. getDefaultSensor(Sensor . TYPE_STEP_COUNTER );
41+ listener = new SensorListener ();
42+
43+ manager. registerListener(listener, sensor, SensorManager . SENSOR_DELAY_NORMAL );
44+ }
45+
46+ public void onPause () {
47+ super . onPause();
48+ if (manager != null ) manager. unregisterListener(listener);
49+ }
50+
51+ class SensorListener implements SensorEventListener {
52+ public void onSensorChanged (SensorEvent event ) {
53+ if (offset == - 1 ) offset = (int )event. values[0 ];
54+ steps = (int )event. values[0 ] - offset;
55+ }
56+ public void onAccuracyChanged (Sensor sensor , int accuracy ) { }
57+ }
0 commit comments