본문 바로가기
개발/Android

현재 위치 정보 얻기 – FusedLocationProvider

by Dev Aaron 2020. 11. 8.
반응형

Android에서 현재 위치를 얻기 위해 LocationManager를 사용했습니다. LocationManager에게 위치 정보를 얻기 위해 사용할 Provider를 제공하여 현재 위치 정보를 얻어올 수 있었습니다.

​대략적인 코드는 다음과 같습니다.

val locationManager: LocationManager = getSystemService(LOCATION_SERVICE) as LocationManager
locationManager.getLastKnownLocation(provider)?.let { location ->
    lat = location.latitude
    lng = location.longitude
}

서비스 중인 칼퇴지향에도 위와 같은 방식으로 현재 위치 정보를 얻어오고 있습니다.

https://play.google.com/store/apps/details?id=com.eastriver.workingtimer

하지만 현재 위치를 얻어오는 다른 방법이 있다는 것을 알게 되었습니다. 바로 FusedLocationProvider를 사용하는 것으로 사용법이 좀더 단순합니다.

val locationProviderClient: FusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
locationProviderClient.lastLocation.addOnSuccessListener {
    lat = it.latitude 
    lng = it.longitude
}

다만 callback 방식으로 얻어오기 때문에 이에 대한 예외 처리 등이 필요하게 됩니다. 보다 상세한 정보는 아래 링크에서 확인하세요.

https://developer.android.com/training/location/retrieve-current

반응형