안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요. 간단한 위치기반어플을 제작하고 있습니다.
일단 provider를 criteria를 참조하여 bestprovider를 가져옵니다.
이때 gps가 on되어 있으면 당연히 gps로 리턴되는데요.
실내에서는 gps로 위치를 수신할 수 없기 때문에 gps가 켜져있더라도
이때는 provider를 network으로 전환하여야 합니다.
그런데 gps로 위치를 수신 할 수 없다는 것을 어떻게 알아차리나요?
requestlocationupdate를 해도 gps가 수신되지 않는 상태라면
locationlistner가 호출조차되지 않기 때문에 잡을 수 있는 인터페이스가 없는듯 보이네요.
고수님들의 답변을 기다리겠습니다.
2011.08.12 16:04:45
저는 다음과 같이 사용하였습니다.
try {
Location gps = locationMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location network = locationMgr.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if(gps!=null) {
onLocationChanged(gps);
Log.i("onloc","gps provider");
}
else if (network!=null) {
onLocationChanged(network);
Log.i("onloc","netword provider");
}
else {
onLocationChanged(hardFix);
Log.i("onloc","hardFix"); // 둘다 안잡히면, 임의로 지정해준 Location hardFix 값을 사용
}
} catch (Exception ex2) {
onLocationChanged(hardFix);
}



