Android umożliwia dostęp do czujników (sensorów) za pośrednictwem Menagera Sensorów (SensorManager).
Po jednorazowym dostaniu się do ServiceManager, można za pośrednictwem metody getSystemService(SENSOR_SERVICE) zarejestrować SensorEventListener. Żeby zapobiec zbędnemu zużyciu baterii najlepiej rejestrować listener w metodzie onResume, a derejestrować w metodzie onPause.
import android.hardware.Sensor ; import android.hardware.SensorEvent ; import android.hardware.SensorEventListener ; import android.hardware.SensorManager ;
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_AC CELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); }
public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER) { float[] values = event.values; // pobranie wartości z akcelerometru float x = values[0]; float y = values[1]; float z = values[2]; //użycie otrzymanych danych }
protected void onResume() { super.onResume(); sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor. TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMA L); }
protected void onPause() { sensorManager.unregisterListener(this); super.onStop(); }
Program wypisujący wszystkie czujniki w urządzeniu. Program - kompas.
Cykle życia aktywności: 55 Prosty przykład użycia akcelerometru: nsor/article.html
/samples/AccelerometerPlay/src/com/e xample/android/accelerometerplay/Ac celerometerPlayActivity.html