1

GpsSatellite.hasAlmanac()GPS エンジンがその衛星のアルマナック データを持っている場合、メソッドは true を返すはずです。常にfalseを返すようですhasAlmanac()(少なくとも私のデバイスでは:Samsung Galaxy Nexus)。実際にusedInFix()は true をhasAlmanac()返しますが、false を返します。GPS 受信機がどのように機能するかについて少しでも知っていれば、これが不可能な組み合わせであることがわかるでしょう...

より良い結果を得た人はいますか?

4

2 に答える 2

1

関連する問題が 4.1.1 で修正されました: onLocationChanged() コールバックで GPS プロバイダーのロケーションで getExtras() によって取得された追加のバンドルは、4.0.4 では空でした --- 4.1.1 では、 GPS ソリューションが基づいている衛星 --- .getInt("satellites") を使用して抽出 --- 必要に応じて。ありがとうございました!

ここから取得: https://code.google.com/p/android/issues/detail?id=30569 したがって、正しく読んでいる場合は、Android 4.1.1 で修正する必要があります。

于 2013-07-26T12:50:49.563 に答える
0

hasAlmanac()チップが有効な位置を提供する場合、私の GPS の知識は正しいに違いありません。少なくとも、これは GPS 衛星に対して有効です。GPS と GLONASS をサポートするチップを想像してみてください。理論的には、GPS アルマナック (アルマナックはすべての GPS 衛星に有効です) しかなく、GLONASS アルマナックがない可能性があります。
しかし、実際には、hasAlmanac() が GPS と GLONASS の両方に当てはまります。

別の理論的な状況があり
ます。アルマナックを明示的に設定でき、アルマナックが古いことをチップが検出した場合、アルマナックがない秒数が発生する可能性があります。

または、デバイスが数か月間無効になっていて、起動時に建物内で hasAlmanac() をクエリした場合、それも false である可能性があります。(アルマナックを受け取ったことはありません)

アルマンクは大まかな衛星天体暦のみを表すため、より長期間有効です。

于 2013-07-26T12:59:27.050 に答える