위치정보 활용하는 토이 프로젝트를 만들고 있었는데
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 위치를 갱신해서 가져온다면 보강이 될 거 같다.