// A sensor example that prints x, y and z axis values. package com.example.simplesensors; import android.os.Bundle; import android.app.Activity; import android.widget.TextView; import android.widget.Toast; import android.hardware.SensorManager; import android.hardware.SensorEventListener; import android.hardware.SensorEvent; import android.hardware.Sensor; import java.util.List; public class MainActivity extends Activity { SensorManager sm = null; TextView textView1 = null; List list; SensorEventListener sel = new SensorEventListener(){ public void onAccuracyChanged(Sensor sensor, int accuracy) {} public void onSensorChanged(SensorEvent event) { float[] values = event.values; textView1.setText("x: "+(int)values[0]+"\ny: "+(int)values[1]+"\nz: "+(int)values[2]); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* Get a SensorManager instance */ sm = (SensorManager)getSystemService(SENSOR_SERVICE); textView1 = findViewById(R.id.textView1); list = sm.getSensorList(Sensor.TYPE_ACCELEROMETER); if(list.size()>0){ sm.registerListener(sel, (Sensor) list.get(0), SensorManager.SENSOR_DELAY_NORMAL); }else{ Toast.makeText(getBaseContext(), "Error: No Accelerometer.", Toast.LENGTH_LONG).show(); } } @Override protected void onStop() { if(list.size()>0){ sm.unregisterListener(sel); } super.onStop(); } }