我正在写一个简短的活动来获取 GPS 卫星数据。我知道有最大值。那里有 32 颗 GPS 卫星,其中 24 颗处于活动状态。在我所在的位置(柏林-德国),我一次只能看到最大值。12 颗 GPS 卫星。当我在外面测试我的应用程序时,我确实得到了超过 12 颗可见卫星。通常我会得到超过 20 个,而且几乎所有这些都是在修复中使用的。我使用以下代码来显示卫星数据:
@Override
public void onGpsStatusChanged(int event) {
//Call on GPS Status changes, such as satellites info
String gpsStats = "";
gpsStatus = locationManager.getGpsStatus(gpsStatus);
if (gpsStatus != null) {
Iterable<GpsSatellite>satellites = gpsStatus.getSatellites();
Iterator<GpsSatellite>sat = satellites.iterator();
int visibleSats = 0;
while (sat.hasNext()) {
satellite = sat.next();
gpsStats += "SATELLITE " + (visibleSats++) + "\n"
+ "\t PRN: " + satellite.getPrn() + "\n"
+ "\t signal-noise-ratio: " + satellite.getSnr() + "\n"
+ "\t azimuth: " + satellite.getAzimuth() + "°\n"
+ "\t elevation: " + satellite.getElevation() + "°\n"
+ "\t used in fix: " + satellite.usedInFix() + "\n"
+ "\t has almanac data: " + satellite.hasAlmanac() + "\n"
+ "\t has ephemeris data: " + satellite.hasEphemeris() + "\n"
+ "\n";
}
sats.setText(gpsStats);
}
}
我得到的所有数据似乎都是正确的。它们都有不同的值和 PRN。我做错什么了吗?我看到的那些卫星不是在轨道上的吗?先感谢您。