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