Come creare un App Step Counter

In questo tutorial andremo realizzare una semplice applicazione contapassi implementando il  SensorEventListener all’interno della classe e sovrascrivendo i due metodi onSensorChanged ,che verrà attivato da un SensorEvent ogni volta che si verifica una modifica al Sensor ,e
onAccuracyChanged, chiamato quando la precisione di un sensore è cambiata, fornendo la nuova precisione.

MainActivity.Java:
package com.exsample.stepCounter.activities;

import android.app.Activity;
import android.os.Bundle;
import com.exsample.stepCounter.R;
import android.hardware.*;

import android.app.*;
import android.view.View.*;
import android.widget.*;
import android.hardware.SensorEventListener;
public class MainActivity extends Activity implements SensorEventListener{
private SensorManager mSensorManager;
private Sensor mAccelerometer;

private float acceleration = 0.0f;
private float steps=0.0f;
TextView text;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text=findViewById(R.id.txt);

mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

}

@Override
protected void onResume()
{
super.onResume();
mSensorManager.registerListener(this,
mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause()
{
super.onPause();
mSensorManager.unregisterListener(this);

}

@Override
public void onAccuracyChanged   ( Sensor sensor, int accuracy) { 

}

@Override
public void onSensorChanged(SensorEvent event)
{

if(event!=null)
{

float x = event.values[0];
float y = event.values[1];
float z = event.values[2];

acceleration = x*x+y*y+z*z;


text.setText(“”+steps);
}

if (acceleration>150)
{

steps++;


}

}


}

ActivityMain.xlm:
    <?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:orientation=”vertical”>

<TextView
android:layout_width=”90dp”
android:layout_height=”60dp”
android:id=”@+id/txt”
android:textAppearance=”?android:attr/textAppearanceMedium”
android:background=”#E5473D”
android:textSize=”40sp”/>

</LinearLayout>