From ea7af7f00886f77941b81262e597c3b7f3477f48 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Fri, 8 Aug 2014 18:31:20 +0200 Subject: Compass sensor implementation for Android Change-Id: Ic13d2d1e400a92b2f0c3c83e279c58b799f9d06b Reviewed-by: Lorn Potter --- .../org/qtproject/qt5/android/sensors/QtSensors.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/plugins/sensors/android/jar') diff --git a/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java b/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java index efd1ff6d..e7e309ed 100644 --- a/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java +++ b/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java @@ -153,6 +153,25 @@ public class QtSensors implements SensorEventListener return angles; } + private static float[] mRotation = new float[9]; + private static float[] mOrientation = new float[3]; + private static float[] mAcc = new float[3]; + private static float[] mMag = new float[3]; + + private static float getCompassAzimuth(float a0, float a1, float a2, float m0, float m1, float m2) + { + mAcc[0] = a0; + mAcc[1] = a1; + mAcc[2] = a2; + mMag[0] = m0; + mMag[1] = m1; + mMag[2] = m2; + + SensorManager.getRotationMatrix(mRotation, null, mAcc, mMag); + SensorManager.getOrientation(mRotation, mOrientation); + return mOrientation[0]; + } + public static native void accuracyChanged(int sensorType, int accuracy); public static native void sensorChanged(int sensorType, long timestamp, float[] values); -- cgit v1.2.3