summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2018-12-12 13:01:40 +0100
committerAlex Blasche <alexander.blasche@qt.io>2018-12-14 07:17:38 +0000
commita4442abdc034de7984e003c821939ce1b1976593 (patch)
tree7175d85db3ce16ea4b23bcca9f6874f013c5a767
parent2bb003b7b158890e87731b1a85f3b71008d6284f (diff)
downloadqtlocation-a4442abdc034de7984e003c821939ce1b1976593.tar.gz
Collect vertical position accurancy details
Android's platform API supports this piece of information since API version 26. Fixes: QTBUG-64689 Change-Id: I09cce4979f3f754cb9af11281de2fe0050b74da1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-rw-r--r--src/plugins/position/android/src/jnipositioning.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/position/android/src/jnipositioning.cpp b/src/plugins/position/android/src/jnipositioning.cpp
index c333a9c6..7d138ce4 100644
--- a/src/plugins/position/android/src/jnipositioning.cpp
+++ b/src/plugins/position/android/src/jnipositioning.cpp
@@ -234,7 +234,7 @@ namespace AndroidPositioning {
jlong timestamp = jniEnv->CallLongMethod(location, mid);
info.setTimestamp(QDateTime::fromMSecsSinceEpoch(timestamp, Qt::UTC));
- //accuracy
+ //horizontal accuracy
mid = getCachedMethodID(jniEnv, thisClass, "hasAccuracy", "()Z");
attributeExists = jniEnv->CallBooleanMethod(location, mid);
if (attributeExists) {
@@ -243,7 +243,21 @@ namespace AndroidPositioning {
info.setAttribute(QGeoPositionInfo::HorizontalAccuracy, qreal(accuracy));
}
+ //vertical accuracy
+ mid = getCachedMethodID(jniEnv, thisClass, "hasVerticalAccuracy", "()Z");
+ if (mid) {
+ attributeExists = jniEnv->CallBooleanMethod(location, mid);
+ if (attributeExists) {
+ mid = getCachedMethodID(jniEnv, thisClass, "getVerticalAccuracyMeters", "()F");
+ if (mid) {
+ jfloat accuracy = jniEnv->CallFloatMethod(location, mid);
+ info.setAttribute(QGeoPositionInfo::VerticalAccuracy, qreal(accuracy));
+ }
+ }
+ }
+ if (!mid)
+ jniEnv->ExceptionClear();
//ground speed
mid = getCachedMethodID(jniEnv, thisClass, "hasSpeed", "()Z");