Ci scusiamo per il mio inglese. Sto cercando di ottenere una singola posizione dal GPS per inserire le variabili globali latitudine, longitudine. Il GPS si accende, ma l'attività continua prima che i dati vengano recuperati dal GPS.È necessario che l'attività di Android attenda fino al raggiungimento della posizione GPS
Le mie esigenze in altre parole ... il metodo getCurrentLocation() deve terminare solo se è stata trovata una posizione e sono state riempite le variabili di longitudine e latitudine, quindi è possibile utilizzarle in un altro metodo. So che ... l'utente deve aspettare ... risolverò questo in avanti mostrando qualcosa sullo schermo. Cosa devo fare? Grazie
Penso che sto saltando smettere di ascoltare il GPS in qualche posto. Dove è meglio?
Codice segue:
//Method to retrieve coordinates
public void getCurrentLocation() {
//Use GPS if possible
if(manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//assign Listener to GPS
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
Toast.makeText(this, LocationManager.GPS_PROVIDER, Toast.LENGTH_SHORT).show();
}
else if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){//toherwise, use NETWORK
//assign Listener to NETWORK
manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
Toast.makeText(this, LocationManager.NETWORK_PROVIDER, Toast.LENGTH_SHORT).show();
}
}
//Class to store the location recived in two variables
final class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
//coordinates storing
latitude = String.valueOf(location.getLatitude());
longitude = String.valueOf(location.getLongitude());
Toast.makeText(getApplicationContext(), latitude + longitude, Toast.LENGTH_LONG).show();
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}