GpsSatellite.hasAlmanac()是否会返回true?

时间:2013-07-26 12:46:03

标签: android gps android-location

我已对方法GpsSatellite.hasAlmanac()进行了一些测试,如果GPS引擎具有该卫星的年历数据,则应该返回true。似乎hasAlmanac()总是返回false(至少在我的设备上:三星Galaxy Nexus)。实际上,即使usedInFix()返回true,hasAlmanac()也会返回false。如果您对GPS接收器的工作方式有所了解,那么您就会明白这是一个不可能的组合......

有没有人有更好的结果?

2 个答案:

答案 0 :(得分: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 所以它应该在android 4.1.1中修复,如果我正确阅读它。

答案 1 :(得分:0)

如果芯片提供有效位置,我的GPS知识hasAlmanac()必须为真。 至少这对GPS卫星有效。 想象一下支持GPS和GLONASS的芯片,那么理论上你可能只有一个GPS历书(历书对所有GPS卫星都有效)但没有GLONASS年历。
但实际上我希望hasAlmanac()对于GPS和GLONASS来说都是真的

还有另一个理论情况:
如果你可以明确地设置年历,并且芯片检测到年历被oud,那么可能会有几秒没有年历。

或者如果您的设备在某个月内出现问题,并且在建筑物内部启动时您查询了hasAlmanac(),那么它也可能是假的。 (它从未收到过年历)

almanc有效期较长,因为它只代表粗糙的卫星epheremides。