Code:
//----------------------------------------------------------------------------------------------------------//
private LocationProvider createLocationProvider(Criteria cr){
LocationProvider lp=null;
try {
if (((lp=LocationProvider.getInstance(cr))!=null) ||
((lp = LocationProvider.getInstance(null))!=null)){//Set the least restrictive Criteria!
lp.setLocationListener(this, -1, -1, -1);//LocationListener,interval,timeout,maxAge//LocationListener is in this class!
}else if(lp==null){
d.setCurrent(newAdvisor("LocationException","\nCannot create a LocationProvider!",5000),gpsGui);
}
} catch (LocationException le) {
d.setCurrent(new Advisor("LocationException","\nCannot create a LocationProvider for this Criteria!",5000),gpsGui);
} catch (Exception e){/////////////////////
d.setCurrent(new Advisor("Exception","\nCannot set the LOCATIONLISTENER!"+e.getMessage(),5000),gpsGui);////
}
return lp;
}
//----------------------------------------------------------------------------------------------------------//
public void locationUpdated(LocationProvider lp, Location l) {
try {
paintGPSData(l);
} catch (InterruptedException ie) {
d.setCurrent(new Advisor("InterruptedException","\n"+ie.getMessage(),5000),gpsGui);
}
}
//----------------------------------------------------------------------------------------------------------//
public void providerStateChanged(LocationProvider lp, int newState) {
Alert a=new Alert("GPS STATE CHANGED!");
a.setType(AlertType.WARNING);
a.setTimeout(3000);
switch (newState) {
case LocationProvider.AVAILABLE:
a.setString("GPS IS AVAILABLE...");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
a.setString("GPS IS TEMPORARILY UNAVAILABLE...");
break;
case LocationProvider.OUT_OF_SERVICE:
a.setString("GPS IS OUT OF SERVICE...");
break;
}
d.setCurrent(a,gpsGui);
}
//----------------------------------------------------------------------------------------------------------//