diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:55:49 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:55:49 +0100 |
commit | 07bf3002fecd493a47bfb97420d3c3fbe6ee1458 (patch) | |
tree | 26cc548ef1e8e079b8fe85c7ae4624d4362c45b3 /src/plugins/sensors/android | |
parent | 5bf1bd00335d0c95c54de426a02da2a98257fedb (diff) | |
parent | 4c5873b43a2d7d80a33374d89b870a67e7900eca (diff) |
Merge remote-tracking branch 'origin/5.7' into 5.8
Change-Id: I912756c6bbecf7c55acd60d136ea6ce490118ebb
Diffstat (limited to 'src/plugins/sensors/android')
-rw-r--r-- | src/plugins/sensors/android/src/androidmagnetometer.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/sensors/android/src/androidmagnetometer.cpp b/src/plugins/sensors/android/src/androidmagnetometer.cpp index a729dddf..fcde4cf5 100644 --- a/src/plugins/sensors/android/src/androidmagnetometer.cpp +++ b/src/plugins/sensors/android/src/androidmagnetometer.cpp @@ -39,13 +39,27 @@ #include "androidmagnetometer.h" +enum AndroidSensorStatus +{ + SENSOR_STATUS_UNRELIABLE = 0, + SENSOR_STATUS_ACCURACY_LOW = 1, + SENSOR_STATUS_ACCURACY_MEDIUM = 2, + SENSOR_STATUS_ACCURACY_HIGH = 3, +}; + AndroidMagnetometer::AndroidMagnetometer(AndroidSensors::AndroidSensorType type, QSensor *sensor) :AndroidCommonSensor<QMagnetometerReading>(type, sensor) {} void AndroidMagnetometer::onAccuracyChanged(jint accuracy) { - m_reader.setCalibrationLevel(accuracy); + // Expected range is [0, 3] + if (accuracy < SENSOR_STATUS_UNRELIABLE || accuracy > SENSOR_STATUS_ACCURACY_HIGH) { + qWarning("Unable to get sensor accuracy. Unexpected value: %d", accuracy); + return; + } + + m_reader.setCalibrationLevel(accuracy / qreal(3.0)); } void AndroidMagnetometer::onSensorChanged(jlong timestamp, const jfloat *values, uint size) |