How to get information about the satellites from android?

后端 未结 3 496
粉色の甜心
粉色の甜心 2021-02-10 21:12


I am trying to get the satellite information from the android and wrote this following code which is not giving any results, could any one point out why is it so?

3条回答
  •  无人及你
    2021-02-10 21:25

    According to the docs for LocationManager.getGpsStatus(...)...

    This should only be called from the onGpsStatusChanged(int) callback to ensure that the data is copied atomically.

    Try implementing GpsStatus.Listener on your Activity and overriding onGpsStatusChanged(int). Example...

    public class MyActivity extends Activity implements GpsStatus.Listener {
    
        LocationManager locationManager = null;
        TextView tv = null;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gps);
    
            tv = (TextView)(findViewById(R.id.Gpsinfo));
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            locationManager.addGpsStatusListener(this);
        }
    
        @Override
        public void onGpsStatusChanged(int) {
            GpsStatus gpsStatus = locationManager.getGpsStatus(null);
            if(gpsStatus != null) {
                Iterablesatellites = gpsStatus.getSatellites();
                Iteratorsat = satellites.iterator();
                int i=0;
                while (sat.hasNext()) {
                    GpsSatellite satellite = sat.next();
                    strGpsStats+= (i++) + ": " + satellite.getPrn() + "," + satellite.usedInFix() + "," + satellite.getSnr() + "," + satellite.getAzimuth() + "," + satellite.getElevation()+ "\n\n";
                }
                tv.setText(strGpsStats);
            }
        }
    }
    

提交回复
热议问题