Android GPS Locating, Won't Deliver Location
===

Goal: Determine GPS location once, then place the latitude/longitude into two separate EditText boxes to show the user.

Problem: I have tested my method and it works fine in the emulator, I send it GPS coord's and it works fine and dandy. I try it on two separate devices (v2.1 phone, v4.0 ICS tablet) and the GPS icon comes up in notifications (all good), but just stays there trying to determine location. I have tested it plenty of times and given plenty of time each time I tested.

I am in the middle of Brisbane so I doubt it's a location issue - besides, Google Maps works just fine when locating me via GPS.

If I turn the GPS off so it defaults back to Network locating, it works great and gives me the location.

The Methods:

(The method I call);

<!-- language: java -->

    public void locateCoordinates(EditText latitudeInput, EditText longitudeInput) {
		// Find coordinates, place them in EditText boxes.
		
		// Create the locating services if needed
		if(locManager == null) {
			locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
		}
		if(locListener != null) {
			// Unregister listener from locManager (in case of double click of Locate button)
			locManager.removeUpdates(locListener);
		}
		locListener = new LocListenerImpl(locManager, latitudeInput, longitudeInput);
		
		if(locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
			locManager.requestLocationUpdates(
					LocationManager.GPS_PROVIDER, 0, 0, locListener);
		} else if(locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
			locManager.requestLocationUpdates(
					LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
			Toast.makeText(this,
					"GPS unavailable, trying network-based location instead.",
					Toast.LENGTH_SHORT).show();
		} else {
			Toast.makeText(this,
					"No locating methods enabled", Toast.LENGTH_SHORT).show();
		}
		
	}

(Listener Implementation Class);

<!-- language: java -->

    public class LocListenerImpl implements LocationListener {
		
		private LocationManager locManager = null;
		private EditText latitudeInput = null;
		private EditText longitudeInput = null;
		
		public LocListenerImpl(LocationManager locManager, EditText latitudeInput, EditText longitudeInput) {
			this.latitudeInput = latitudeInput;
			this.longitudeInput = longitudeInput;
			this.locManager = locManager;
		}

		public void onLocationChanged(Location location) {
			if(location != null) {
				latitudeInput.setText(String.valueOf(location.getLatitude()));
				longitudeInput.setText(String.valueOf(location.getLongitude()));
				locManager.removeUpdates(this);	// Location found, unregister listener
			}
		}

		public void onProviderDisabled(String provider) {}
		public void onProviderEnabled(String provider) {}
		public void onStatusChanged(String provider, int status, Bundle extras) {}
	}

I am struggling to see what I have done wrong or what might be causing this. Any help appreciated!