2
我使用傳感器作爲Sensor.TYPE_ACCELEROMETER
。我實現OnSensorChanged()
方法如下:即使傳感器讀數沒有變化,OnSensorChanged也會被呼叫
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
mGravity = event.values;
float[] vector;
vector = event.values.clone();
double normVector =
Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1] + vector[2] * vector[2]);
vector[0] = vector[0]/(float) normVector;
vector[1] = vector[1]/(float) normVector;
vector[2] = vector[2]/(float) normVector;
angle = (int) Math.round(Math.toDegrees(Math.acos(vector[2])));
// do something with angle
}
然而,這種方法被調用,即使我的設備平躺在桌子上,我看到angle
(7)穩定值。這是爲什麼?有什麼辦法可以確保只有當angle
的讀數改變時才調用此方法?