Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
jnipositioning.cpp File Reference

(80a0ad58ed14dfbe56cc03ac8c8b93a087852971)

#include "jnipositioning.h"
#include "qgeopositioninfosource_android_p.h"
#include "qgeosatelliteinfosource_android_p.h"
#include <QtPositioning/QGeoPositionInfo>
#include <QtCore/QDateTime>
#include <QtCore/QMap>
#include <QtCore/QRandomGenerator>
#include <QtCore/QJniEnvironment>
#include <QtCore/QJniObject>
#include <QtCore/QLoggingCategory>
#include <QtCore/QPermission>
#include <QtCore/QCoreApplication>
#include <QtCore/QTimeZone>
#include <QtCore/QSet>
#include <android/log.h>
Include dependency graph for jnipositioning.cpp:

Go to the source code of this file.

Classes

class  GlobalClassRefWrapper< T >

Namespaces

namespace  AndroidPositioning

Macros

#define GET_AND_CHECK_STATIC_METHOD(VAR, METHOD_NAME, ...)

Typedefs

typedef QMap< int, QGeoPositionInfoSourceAndroid * > AndroidPositioning::PositionSourceMap
typedef QMap< int, QGeoSatelliteInfoSourceAndroid * > AndroidPositioning::SatelliteSourceMap
using AndroidPositioning::UniqueId = std::pair<int, int>

Enumerations

enum  AndroidPositioning::PositionProvider {
  AndroidPositioning::PROVIDER_GPS = 0 , AndroidPositioning::PROVIDER_NETWORK = 1 , AndroidPositioning::PROVIDER_PASSIVE = 2 , AndroidPositioning::PROVIDER_GPS = 0 ,
  AndroidPositioning::PROVIDER_NETWORK = 1 , AndroidPositioning::PROVIDER_PASSIVE = 2
}
enum  AndroidPositioning::PositionProvider {
  AndroidPositioning::PROVIDER_GPS = 0 , AndroidPositioning::PROVIDER_NETWORK = 1 , AndroidPositioning::PROVIDER_PASSIVE = 2 , AndroidPositioning::PROVIDER_GPS = 0 ,
  AndroidPositioning::PROVIDER_NETWORK = 1 , AndroidPositioning::PROVIDER_PASSIVE = 2
}

Functions

int AndroidPositioning::registerPositionInfoSource (QObject *obj)
void AndroidPositioning::unregisterPositionInfoSource (int key)
QGeoPositionInfoSource::PositioningMethods AndroidPositioning::availableProviders ()
QGeoPositionInfo AndroidPositioning::positionInfoFromJavaLocation (const jobject &location, bool useAltConverter)
static UniqueId AndroidPositioning::getUid (const QGeoSatelliteInfo &info)
QList< QGeoSatelliteInfoAndroidPositioning::satelliteInfoFromJavaLocation (JNIEnv *jniEnv, jobjectArray satellites, QList< QGeoSatelliteInfo > *usedInFix)
QList< QGeoSatelliteInfoAndroidPositioning::satelliteInfoFromJavaGnssStatus (jobject gnssStatus, QList< QGeoSatelliteInfo > *usedInFix)
QGeoPositionInfo AndroidPositioning::lastKnownPosition (bool fromSatellitePositioningMethodsOnly, bool useAltitudeConverter)
int AndroidPositioning::positioningMethodToInt (QGeoPositionInfoSource::PositioningMethods m)
static AccuracyTypes AndroidPositioning::accuracyFromPositioningMethods (QGeoPositionInfoSource::PositioningMethods m)
QGeoPositionInfoSource::Error AndroidPositioning::startUpdates (int androidClassKey)
void AndroidPositioning::stopUpdates (int androidClassKey)
QGeoPositionInfoSource::Error AndroidPositioning::requestUpdate (int androidClassKey, int timeout)
QGeoSatelliteInfoSource::Error AndroidPositioning::startSatelliteUpdates (int androidClassKey, bool isSingleRequest, int requestTimeout)
bool AndroidPositioning::hasPositioningPermissions (AccuracyTypes accuracy)
static void positionUpdated (JNIEnv *env, jobject thiz, QtJniTypes::Location location, jint androidClassKey, jboolean isSingleUpdate)
static void locationProvidersDisabled (JNIEnv *env, jobject thiz, jint androidClassKey)
static void locationProvidersChanged (JNIEnv *env, jobject thiz, jint androidClassKey)
static void notifySatelliteInfoUpdated (const QList< QGeoSatelliteInfo > &inView, const QList< QGeoSatelliteInfo > &inUse, jint androidClassKey, jboolean isSingleUpdate)
static void satelliteGpsUpdated (JNIEnv *env, jobject thiz, jobjectArray satellites, jint androidClassKey, jboolean isSingleUpdate)
static void satelliteGnssUpdated (JNIEnv *env, jobject thiz, QtJniTypes::GnssStatus gnssStatus, jint androidClassKey, jboolean isSingleUpdate)
static bool registerNatives ()
Q_DECL_EXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *)

Variables

static GlobalClassRefWrapper< QtJniTypes::QtPositioning > positioningClass
static jmethodID providerListMethodId
static jmethodID lastKnownPositionMethodId
static jmethodID startUpdatesMethodId
static jmethodID stopUpdatesMethodId
static jmethodID requestUpdateMethodId
static jmethodID startSatelliteUpdatesMethodId
static const char logTag [] = "qt.positioning.android"
static const char methodErrorMsg [] = "Can't find method \"%s%s\""

Macro Definition Documentation

◆ GET_AND_CHECK_STATIC_METHOD

#define GET_AND_CHECK_STATIC_METHOD ( VAR,
METHOD_NAME,
... )
Value:
VAR = env.findStaticMethod<__VA_ARGS__>(positioningClass(), METHOD_NAME); \
if (!VAR) { \
__android_log_print(ANDROID_LOG_FATAL, logTag, methodErrorMsg, METHOD_NAME, \
QtJniTypes::methodSignature<__VA_ARGS__>().data()); \
return false; \
}
static const char logTag[]
static GlobalClassRefWrapper< QtJniTypes::QtPositioning > positioningClass
static const char methodErrorMsg[]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
[0]
#define VAR(I)

Definition at line 715 of file jnipositioning.cpp.

Function Documentation

◆ JNI_OnLoad()

Q_DECL_EXPORT jint JNICALL JNI_OnLoad ( JavaVM * ,
void *  )

Definition at line 761 of file jnipositioning.cpp.

◆ locationProvidersChanged()

void locationProvidersChanged ( JNIEnv * env,
jobject thiz,
jint androidClassKey )
static

Definition at line 658 of file jnipositioning.cpp.

◆ locationProvidersDisabled()

void locationProvidersDisabled ( JNIEnv * env,
jobject thiz,
jint androidClassKey )
static

Definition at line 642 of file jnipositioning.cpp.

◆ notifySatelliteInfoUpdated()

void notifySatelliteInfoUpdated ( const QList< QGeoSatelliteInfo > & inView,
const QList< QGeoSatelliteInfo > & inUse,
jint androidClassKey,
jboolean isSingleUpdate )
static

Definition at line 672 of file jnipositioning.cpp.

◆ positionUpdated()

void positionUpdated ( JNIEnv * env,
jobject thiz,
QtJniTypes::Location location,
jint androidClassKey,
jboolean isSingleUpdate )
static

Definition at line 616 of file jnipositioning.cpp.

References QGeoPositionInfoSourceAndroid::useAltitudeConverter().

Here is the call graph for this function:

◆ registerNatives()

bool registerNatives ( )
static

Definition at line 723 of file jnipositioning.cpp.

◆ satelliteGnssUpdated()

void satelliteGnssUpdated ( JNIEnv * env,
jobject thiz,
QtJniTypes::GnssStatus gnssStatus,
jint androidClassKey,
jboolean isSingleUpdate )
static

Definition at line 701 of file jnipositioning.cpp.

◆ satelliteGpsUpdated()

void satelliteGpsUpdated ( JNIEnv * env,
jobject thiz,
jobjectArray satellites,
jint androidClassKey,
jboolean isSingleUpdate )
static

Definition at line 688 of file jnipositioning.cpp.

Variable Documentation

◆ lastKnownPositionMethodId

jmethodID lastKnownPositionMethodId
static

Definition at line 63 of file jnipositioning.cpp.

◆ logTag

const char logTag = "qt.positioning.android"
static

Definition at line 69 of file jnipositioning.cpp.

◆ methodErrorMsg

const char methodErrorMsg = "Can't find method \"%s%s\""
static

Definition at line 70 of file jnipositioning.cpp.

◆ positioningClass

GlobalClassRefWrapper< QtJniTypes::QtPositioning > positioningClass
static

Definition at line 60 of file jnipositioning.cpp.

◆ providerListMethodId

jmethodID providerListMethodId
static

Definition at line 62 of file jnipositioning.cpp.

◆ requestUpdateMethodId

jmethodID requestUpdateMethodId
static

Definition at line 66 of file jnipositioning.cpp.

◆ startSatelliteUpdatesMethodId

jmethodID startSatelliteUpdatesMethodId
static

Definition at line 67 of file jnipositioning.cpp.

◆ startUpdatesMethodId

jmethodID startUpdatesMethodId
static

Definition at line 64 of file jnipositioning.cpp.

◆ stopUpdatesMethodId

jmethodID stopUpdatesMethodId
static

Definition at line 65 of file jnipositioning.cpp.