1
磁場と加速度計を使用して方位を計算しようとしています。すべての値が0になるAndroid getRotationMatrix
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
Log.e(TAG, "Sensor Changed");
float[] r = new float[9];
float[] i = new float[9];
float[] accValues = new float[3];
float[] geoVallues = new float[3];
}
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
Log.e(TAG, "Accelerometer Changed");
accValues = event.values.clone();
}
if(event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
Log.e(TAG, "Magnetif Field Changed");
geoVallues = event.values.clone();
}
if (accValues != null && geoVallues != null) {
SensorManager.getRotationMatrix(r, i, accValues, geoVallues);
float[] v = new float[3];
SensorManager.getOrientation(r, v);
oriView.setText("Orientation:\nAz=" + Math.toDegrees((v[0])) + "\nPitch=" + Math.toDegrees((v[1])) + "\nRoll=" + Math.toDegrees((v[2])));
}
}
間違って何任意のアイデア:しかし、計算されたAZ、ピッチおよびロールは0である。ここでは、コードですか?
を試してみてくださいあなたが(http://developer.android.com/reference/android/hardware/SensorManager.html)[ドキュメントに示されているように]が正しくセンサーのリスナーを登録したことがありますか?また、 'getRotationMatrix()'が[false'を返す]でないかどうかを確認してください(http://developer.android.com/reference/android/hardware/SensorManager.html#getRotationMatrix%28float []、%20float [] 、%20float []、%20float []%29)。 –