2016-04-12 16 views
1

状況によっては場所の対策を行う必要があり、すぐに(時間通りに)読む必要がある「コードネームアプリ」を作成しました。GPSを使用して直近の場所を読み取る方法

この目的を達成するために、DisplayオブジェクトからメソッドgetLocationSync(long timeout = 10000)を使用しています。コードは、そのようなものです:

Location loc = LocationManager 
          .getLocationManager() 
            .getCurrentLocationSync(10000); 

このメソッドのjavadocは、それは現時点では対策を実行し、助言言う: 「結果が返されるまで、あなたのようなものを使用する場合がありますので、彼の方法をブロックすることに注意してくださいこれが実行されている間のInfiniteProgress "

ご覧のとおり、10秒間のタイムアウトでメソッドを呼び出しました。

実際、私は応答としてLocationオブジェクトを取得しますが、返されるメジャーは即時のメジャーではありません。この方法では、4分の間に電話機の位置を大きく変更しても、しばらくの間(約4または5分)同じ結果が繰り返されます。

私が気づいたもう一つのことは、「getCurrentLocationSync」と呼ばれるほとんどの時間は、「InfiniteProgress」は表示されません。コールはすぐに戻ります。

何か間違っていますか? 必要な場所を実際に測定するには、何が必要ですか?

答えて

0

getCurrentLocationSyncは、純粋なGPSモードとは関連性がありますが、iOS/Androidに実装されているような最新のハイブリッド位置情報APIとは関係のない場所が存在するのを待ちます。

iOSとAndroidの両方で、デフォルトでハイブリッド位置情報APIが使用されます。これは、Wi-Fi、セルデータ、GPSの組み合わせを使用して、より正確で瞬時の場所を提供することを意味します。場所が比較的大きな誤差の範囲内にあるため、GPSを搭載していても正確なデバイスの位置を知ることは問題であり、ほとんどの場合、デバイスが移動を開始すると正確に計算できます。

関連する問題