我正在写一个简短的活动来获得GPS卫星数据。我知道有很多。那里有32颗GPS卫星,其中24颗是活跃的。在我的位置(柏林-德国),我应该只能看到max。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。我做错什么了吗?我看到的不是轨道上的卫星吗?提前谢谢你。 在南半球你最多可以看到16颗GPS卫星。如果你看到更多,它们来自另一个GNSS提供商,如GLONASS(或者在欧洲有时是2颗EGNOS卫星)。GPS卫星的PRN为1-32,这样你就可以将它们与GLONASS区分开来。