Android收听GPS状态的变化?
作者:互联网
您好我需要知道如何使用Android中的GPS监听以下内容,以便我可以在PreferenceActivity中更新UI.我没有尝试过GpsStatus.Listener.
> GpsStatus.GPS_EVENT_STARTED
> GpsStatus.GPS_EVENT_STOPPED
任何建议都会很棒.
解决方法:
mLocationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
mGPSStatusListener = new GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
switch (event) {
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
satelliteStatus = mLocationManager.getGpsStatus(null);
Iterable<GpsSatellite> iSatellites = satelliteStatus
.getSatellites();
Iterator<GpsSatellite> it = iSatellites.iterator();
maxsatellites = 0;
while (it.hasNext()) {
GpsSatellite oSat = (GpsSatellite) it.next();
statArray[maxsatellites][0] = oSat.getPrn();
statArray[maxsatellites][1] = oSat.getAzimuth();
statArray[maxsatellites][2] = oSat.getPrn();
statArray[maxsatellites][3] = oSat.getElevation();
statArray[maxsatellites][4] = oSat.getSnr();
if (oSat.usedInFix()) {
statArray[maxsatellites][5] = 1;
} else {
statArray[maxsatellites][5] = 0;
}
maxsatellites++;
}
if (mLastLocation != null)
if ((SystemClock.elapsedRealtime() - mLastLocationMillis) < 3000) {
isGPSFix = 7; // Enumeration for ONC_STAT_3D
} else {
isGPSFix = 2; // Enumeration for ONC_STAT_BAD_COVER
}
}
if (isGPSFix == 1) { // A fix has been acquired.
// Do something.
} else { // The fix has been lost.
// Do something.
}
break;
case GpsStatus.GPS_EVENT_FIRST_FIX:
// Do something.
isGPSFix = 1;
break;
case GpsStatus.GPS_EVENT_STOPPED:
if ((mLastLocation = mLocationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER)) != null) {
isGPSFix = 5; // Enumeration for } else {
isGPSFix = 2; // Enumeration for
}
}
}
};
mGPSLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the location
// provider.
if (location == null)
return;
mLastLocationMillis = SystemClock.elapsedRealtime();
// Do something.
mLastLocation = location;
}
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
};
mLocationManager.addGpsStatusListener(mGPSStatusListener);
// Register the listener with the Location Manager to receive location
// updates
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
mUpdateIntervalInMillis, 0, mGPSLocationListener);
标签:preferenceactivity,android,gps 来源: https://codeday.me/bug/20191007/1865632.html