Android에서 getLastKnownLocation이 null을 반환할 경우

지프치프·2021년 11월 20일
0

Issue(error)

목록 보기
6/20

개요

위치정보 활용하는 토이 프로젝트를 만들고 있었는데
getLastKnownLocation()이 계속 null을 반환하였다.
마지막으로 갱신되었던 위치를 반환하는데 저장된 위치가 없어서 null을 반환하는 거 같다.

해결

Android에서 Location Provider는 GPS 말고도 Network도 제공하는데
Network는 정확도가 다소 떨어지는 만큼 보조적인 역할로 사용해야 한다.

// GPS로 캐싱된 위치가 없다면 Network로 가져옴
val location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) ?: locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)

GPS_PROVIDER가 null이면 NETWORK_PROVIDER로 가져오도록 바꿔주었다.
정확도가 다소 떨어지지만 없는 거 보단 낫다.
꿩 대신 닭

Network로 우선 가져오고 후에
onLocationChanged() 콜백을 통해서
GPS 위치를 갱신해서 가져온다면 보강이 될 거 같다.

profile
지프처럼 거침없는 개발을 하고싶은 개발자

0개의 댓글