2016-12-06 10 views
1

Android用QTCreatorでアプリケーションを作成しました。私はgpsから私の場所に問題があります。 私の携帯電話でアプリケーションを実行すると、私は調整しませんでした。ブラケットは、すべての時間が、この値が異なる(0xb03c9ba0であるため、重要性を持っていないです何QGeoPositionInfoSourceAndroid(0x9f8c06d0)AndroidからQGeoPositionInfoSourceで奇妙なエラーが発生しました

(空GPS :: startLocationAPI()):qDebugで、私はこれを見ます、0xb03d2ba0、0xf01c9d10)

が、これは私のコードです:

gps.h:

#ifndef GPS_H 
#define GPS_H 
#include <QMainWindow> 
#include <QGeoPositionInfo> 
#include <QGeoPositionInfoSource> 
class gps : public QObject 
{ 
Q_OBJECT 
public: 
    explicit gps(QWidget *parent = 0); 
    virtual ~gps(); 
public slots: 
    void positionUpdated(QGeoPositionInfo geoPositionInfo); 
    void startLocationAPI(); 
private: 
    QGeoPositionInfoSource *m_pLocationInfo; 
}; 
#endif //GPS_H 

gps.cpp

#include "gps.h" 

#include <QGeoCoordinate> 
#include <QGeoPositionInfo> 
#include <QGeoPositionInfoSource> 
#include <QDebug> 

gps::gps(QWidget *parent) 
: QObject(parent), m_pLocationInfo(NULL) 
{ 
    startLocationAPI(); 
} 

gps::~gps() 
{ 
} 

void gps::startLocationAPI() 
{ 
    if (!m_pLocationInfo) 
    { 
     m_pLocationInfo =QGeoPositionInfoSource::createDefaultSource(0); 
     m_pLocationInfo->setPreferredPositioningMethods(QGeoPositionInfoSource::NonSatellitePositioningMethods); 
     connect(m_pLocationInfo, SIGNAL (positionUpdated(QGeoPositionInfo)),this, SLOT (positionUpdated(QGeoPositionInfo))); 
     m_pLocationInfo->startUpdates(); 
     qDebug() << m_pLocationInfo; 
    } 
} 

void gps::positionUpdated(QGeoPositionInfo geoPositionInfo) 
{ 
} 
+0

'gps :: positionUpdated'は呼び出されていますか? 'qDebug()<<" Hello "'を呼び出して呼び出したかどうか確認しましたか? – jpo38

答えて

0

場合m_pLocationInfo出力、それは常に出力異なる住所が、これはポインタであり、そのアドレスは、最も可能性の高いプログラムを実行するたびに変わるよう。

void gps::positionUpdated(QGeoPositionInfo geoPositionInfo) 
{ 
    qDebug() << geoPositionInfo.coordinate().toString(); 
} 

を次にあなたがGPS座標を取得する必要があります。その場合は

あなたは何かが間違っていたかどうかを知るためにerror信号を接続することもできます。

connect(m_pLocationInfo, SIGNAL (error(QGeoPositionInfoSource::Error)),this, SLOT (error(QGeoPositionInfoSource::Error))); 

を追加し、

gps::startLocationAPI()ではとerror(QGeoPositionInfoSource::Error)は、あなたのGPSクラスのスロットなります

void gps::error(QGeoPositionInfoSource::Error positioningError) 
{ 
    qDebug() << "An error occured: " << positioningError; 
} 

何か問題があるかどうかを知ることができます。

関連する問題