GPS가 수신이 안되는 실내에서 실행시 NETWORK프로바이더로 위치정보를 수신하려고 합니다.

해서

Location getMyLocation(){

Location location = locationManager.getLastKnownLocation(bestProvider);

if(location == null){
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Log.d("eeeeeeeeeeeeeeeeeeeeeeeeeeeeee", location+"");
}

return location

}

이런식으로 해주 었는데 역시 최근의 위치정보가 기억되고 있지 않는 폰으로 테스트 하면 null값이 넘어와서 결과적으로 null이 리턴되게 됩니다. NETWORK프로바이더도 한번도 실행한적이 없기때문에 에러가 나는 것 같습니다. 헌데 여기저기 찾아보니 저런식으로 써주면 현재 잡고 있는 IP정보로 오차가 조금 있는 위치를 잡는다고 하는데 잡지 못하였습니다.;;

 

그래서 기본 탑재된 지도어플을 밖에 나가서 실행하여 위치정보를 폰에 얻어온 후 다시 어플을 실행시키니깐 제대로 위치정보가 넘어왔습니다.

여기서 의문점이 어플을 실행하면 그때 GPS가 안되는 지역이면 WIFI를 통하여 NETWORK로 받아오는데 최근의 NETWORK. 즉 getLastKnownLocation(LocationManager.NetWORK_PROVIDER)가 아닌 그 자리에서 네트워크 수신을 요청 해서 받아오는 방법은 없나요??