如何在android中获取gps中使用的卫星数量?

时间:2014-04-25 07:23:10

标签: android gps

我写的是这样的。但我总是0。请纠正我错在哪里。

public int getSatellites() { 

    GpsStatus gpsStatus = locationManager.getGpsStatus(null);
     int count=0;
     if(gpsStatus != null) {
         Iterable<GpsSatellite>satellites = gpsStatus.getSatellites();
         Iterator<GpsSatellite>sat = satellites.iterator();

         int i=0;

         while (sat.hasNext()) {
            count++;
             GpsSatellite satellite = sat.next();
             strGpsStats+= (i++) + ": " + satellite.getPrn() + "," + satellite.usedInFix() + "," 
             + satellite.getSnr() + "," + satellite.getAzimuth() + "," + satellite.getElevation()+ "\n\n";
             Log.v("value:"+"-", strGpsStats+= (i++) + ": " + satellite.getPrn() + "," + satellite.usedInFix() + "," 
                     + satellite.getSnr() + "," + satellite.getAzimuth() + "," + satellite.getElevation()+ "\n\n");
         }
         //tv.setText(strGpsStats);
         Log.v("satellite", "satellite " +count);
     }

    return count;       
 }

主要活动类中的ANd我称之为

  int satellites=gps.getSatellites();

1 个答案:

答案 0 :(得分:1)

可能会导致问题的一些事情:

  • 您必须要求ACCESS_COARSE_LOCATION权限。
  • 您的设备必须启用GPS定位服务。
  • GPS卫星必须“可见”。
  • GPS硬件在获取卫星之前需要一段时间。通常的方法是等到系统通过使用a告诉你某些事情发生了变化 GpsStatus.Listener并等待onGpsStatusChanged事件。