Как получить количество спутников, используемых в gps в android?

Я написал вот так. Но я всегда получаю 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(); 

Несколько вещей, которые могут вызвать проблемы:

  • Вы должны запросить разрешение ACCESS_COARSE_LOCATION .
  • На вашем устройстве должна быть включена служба определения местоположения GPS.
  • GPS-спутники должны быть «видимыми».
  • Аппарат GPS занимает некоторое время, прежде чем приобретать спутники. Обычный способ – дождаться, пока система сообщит вам, что что-то изменилось с помощью GpsStatus.Listener и ждет события onGpsStatusChanged .