如何在Android中通过GPS获取位置时获取卫星名称或号码?

时间:2014-05-20 07:07:09

标签: android gps geolocation location

我是android的新手,我通过gps获取位置,我也在我们的代码中获取卫星号码,但我想获得用于获取位置的特定卫星名称或号码。我有谷歌这么多,但没有得到适当的解决方案。

  

我的问题是: -   1. It is possible to get a particular satellite name or number ? if yes please help me how to find it ?

提前致谢

2 个答案:

答案 0 :(得分:3)

locationManager.getGpsStatus(null).getSatellites()(调用者可以传入GpsStatus对象以使用最新状态信息进行设置,也可以传递null以创建新的GpsStatus对象。)

返回GpsSatellite个对象的数组,表示GPS引擎的当前状态。

locationManager.getGpsStatus(null).getSatellites().getPrn() 返回卫星的PRN(伪随机数)。

getMaxSatellites () 返回卫星列表中可以由getSatellites()返回的最大卫星数。

代码:

  public class SatellitesInfoActivity extends Activity implements GpsStatus.Listener {

    LocationManager locationManager = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.addGpsStatusListener(this);
    }

    @Override
    public void onGpsStatusChanged(int) {
        GpsStatus gpsStatus = locationManager.getGpsStatus(null);
        if(gpsStatus != null) {
            Iterable<GpsSatellite>satellites = gpsStatus.getSatellites();
            Iterator<GpsSatellite>sat = satellites.iterator();
            String lSatellites = null;
            int i = 0;
            while (sat.hasNext()) {
                GpsSatellite satellite = sat.next();
                lSatellites = "Satellite" + (i++) + ": " 
                     + satellite.getPrn() + "," 
                     + satellite.usedInFix() + "," 
                     + satellite.getSnr() + "," 
                     + satellite.getAzimuth() + "," 
                     + satellite.getElevation()+ "\n\n";

                Log.d("SATELLITE",lSatellites);
            }
        }
    }
}

答案 1 :(得分:0)

public class SatellitesInfoActivity extends Activity implements GpsStatus.Listener {

    LocationManager locationManager = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.addGpsStatusListener(this);
    }

    @Override
    public void onGpsStatusChanged(int event) {
        GpsStatus gpsStatus = locationManager.getGpsStatus(null);
        if(gpsStatus != null) {
            Iterable<GpsSatellite>satellites = gpsStatus.getSatellites();
            Iterator<GpsSatellite>sat = satellites.iterator();
            String lSatellites = null;
            int i = 0;
            while (sat.hasNext()) {
                GpsSatellite satellite = sat.next();
                lSatellites = "Satellite" + (i++) + ": " 
                 + satellite.getPrn() + "," 
                 + satellite.usedInFix() + "," 
                 + satellite.getSnr() + "," 
                 + satellite.getAzimuth() + "," 
                 + satellite.getElevation()+ "\n\n";

                Log.d("SATELLITE",lSatellites);
            }
        }
    }
}