Giriş
Şu satırları dahil ederiz. Sensör'ün fiziksel olarak nasıl çalıştığı burada
İmzası şöyle
Accelerometer için önce değerleri saklayacağımız bir dizi yaratırız.
Sensor ve Value Alanları
Olayın hangi sensor tarafından gönderildiğini bildirir ve değerleri verir. Şöyle yaparız.
Şu satırları dahil ederiz. Sensör'ün fiziksel olarak nasıl çalıştığı burada
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
onAccuracyChanged metoduİmzası şöyle
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {...}
onSensorChanged metoduAccelerometer için önce değerleri saklayacağımız bir dizi yaratırız.
float[] acceleration = new float[3];
Daha sonra her tetiklenmede bu değerleri saklarız.public void onSensorChanged(SensorEvent event){
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
acceleration[0] = event.values[0];
acceleration[1] = event.values[1];
acceleration[2] = event.values[2];
...
}
}
Eğer aynı listener farklı sensor tipleri için de kullanılıyorsa sensor tipine göre ayrım yapılabilir. Şöyle yaparız.@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
...
}
}
Toplamı alıp bir öncekinin farkı ile karşılaştırabiliriz.float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
float total = x + y + z;
if (Math.abs(total - totalPrev) > 20) {...}
SensorEvent SınıfıSensor ve Value Alanları
Olayın hangi sensor tarafından gönderildiğini bildirir ve değerleri verir. Şöyle yaparız.
@Override
public void onSensorChanged(SensorEvent event) {
Sensor sensor = event.sensor;
float[] values = event.values;
...
}