diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2018-12-12 13:01:40 +0100 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2018-12-14 07:17:38 +0000 |
commit | a4442abdc034de7984e003c821939ce1b1976593 (patch) | |
tree | 7175d85db3ce16ea4b23bcca9f6874f013c5a767 | |
parent | 2bb003b7b158890e87731b1a85f3b71008d6284f (diff) | |
download | qtlocation-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.cpp | 16 |
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"); |