아래와 같은 식으로 프로그래밍 했고요,,

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

LocationListener mlocListener = new DispLocListener();
LocationManager mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30000L, 500.0f, mlocListener);
Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
......
private class DispLocListener implements LocationListener {
public void onLocationChanged(Location location) {
if (location != null) {
...
}
}

public void onProviderDisabled(String provider) {
}

public void onProviderEnabled(String provider) {
}

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

requestLocationUpdates 를 호출 한 다음 부터는
Log에는

04-13 16:51:31.709: DEBUG/libloc_api(1260): loc_event_cb, client = 0, loc_event = 0x2 (SatReport)
04-13 16:51:31.709: DEBUG/libloc_api(1260): Event RPC_LOC_EVENT_SATELLITE_REPORT (client 0)
04-13 16:51:31.709: DEBUG/libloc_api(1260): sv count: 0
04-13 16:51:31.709: DEBUG/libloc_api(1260): loc_eng_report_sv: valid_mask = 0x30, num of sv = 0
04-13 16:51:31.709: DEBUG/libloc_api(1260): HDOP in loc_eng_report_sv: 0.0
04-13 16:51:32.627: DEBUG/libloc_api(1260): loc_event_cb, client = 0, loc_event = 0x1 (PosReport)
04-13 16:51:32.627: DEBUG/libloc_api(1260): Event RPC_LOC_EVENT_PARSED_POSITION_REPORT (client 0)
04-13 16:51:32.627: DEBUG/libloc_api(1260): Session status: RPC_LOC_SESS_STATUS_IN_PROGESS   Valid mask: 0x606D
04-13 16:51:32.627: DEBUG/libloc_api(1260): Latitude:  36.0499996 (intermediate)
04-13 16:51:32.627: DEBUG/libloc_api(1260): Longitude: 127.3300034
04-13 16:51:32.627: DEBUG/libloc_api(1260): Accuracy: 0.0000000

이렇게 나와요.

그런데 location  값을 보면 계속 null을 반환합니다...


Log상에 저렇게 나오는 것 보면 값을 가져온 것 같은데,, 왜 null을 반환 하는 걸까요?...
제가 뭘 잘못하고 있는건지 알려주세요~