2013-07-26 69 views
1

我已經對方法GpsSatellite.hasAlmanac()進行了一些測試,如果GPS引擎具有該衛星的年曆數據,該方法應該返回true。看起來hasAlmanac()總是返回false(至少在我的設備上:Samsung Galaxy Nexus)。實際上,即使usedInFix()返回true,hasAlmanac()也會返回false。如果你知道GPS接收機是如何工作的,那麼你就會明白這是一個不可能的組合...GpsSatellite.hasAlmanac()是否會返回true?

有沒有人有更好的結果?

回答

1

一個相關的問題已被固定在4.1.1: 由getExtras()上的某個位置 在onLocationChanged獲得用於GPS提供商的額外束()回調在4.0.4中是空的--- 4.1.1它現在包含GPS解決方案所基於的衛星數量--- ,它使用.getInt(「衛星」)---儘可能提取。謝謝!

從這裏取:https://code.google.com/p/android/issues/detail?id=30569 所以應該固定在安卓4.1.1,如果我正確地閱讀它。

+0

謝謝,但我使用4.2,所以我不認爲問題是真的修復。另外,我認爲對這個問題的評論只是說一個*相關的問題已經解決了。這是否也解決了原來的問題並不明確。您是否能夠在實際設備上確認問題是否已得到解決? – robguinness

0

從我的GPS知識hasAlmanac()必須是真實的,如果芯片提供有效位置。 至少這對GPS衛星有效。 想象一下支持GPS和GLONASS的芯片,那麼理論上你可能只有一個GPS曆書(曆書對所有GPS衛星都有效),但沒有GLONASS曆書。
但實際上我預計hasAlmanac()是有史以來GPS和GLONASS

真還有一種理論情況:
如果你可以顯式地設置年曆,芯片檢測到曆書oudated,那麼沒有年曆可能會有幾秒鐘。

或者如果您的設備在一個月內出現故障,並且在建築物內部查詢hasAlmanac(),那麼它也可能是錯誤的。 (它從來沒有收到一本年鑑)

一個almanc有效期更長的時間,因爲它僅代表粗略的衛星epheremides。

+0

對不起,但這並不能真正回答我的問題。我同意hasAlmanac()*應該在任何情況下在我有一個有效位置的情況下返回true。我相當積極,我的設備有一個更新的年曆,因爲我使用應用程序的GPS狀態和工具箱強制新的下載年曆。 – robguinness

+0

對不起,沒有看到你的最後一句話。 – AlexWien