Skip to main content


Step Counter Sensor


public class MainActivity extends AppCompatActivity implements SensorEventListener {

    private TextView textView;
    private SensorManager sensorManager;
    private Sensor stepCounterSensor;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.sensor1);

        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        stepCounterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
        sensorManager.registerListener(this,stepCounterSensor,SensorManager.SENSOR_DELAY_NORMAL);
    }
    @Override    protected void onPause(){
        super.onPause();

        sensorManager.unregisterListener(this);

    }
    private long steps = 0;
    @Override    public void onSensorChanged(SensorEvent event) {
        float[] values = event.values;

        System.out.println(String.valueOf(steps));

        String stepCount = String.valueOf(steps);

        textView.setText(stepCount);
        if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
            steps++;
        }
    }
    @Override    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

    public void save (View view){
        SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("numberOfSteps", textView.getText().toString());
        editor.commit();

        Toast.makeText(this,"Data is saved successfully" , Toast.LENGTH_LONG).show();
    }
}

Comments