반응형
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
반응형
'개발 > Android' 카테고리의 다른 글
[Android] Kakao Map 적용해보기 (0) | 2020.11.08 |
---|---|
갤럭시 S7에서 CameraX 사용 시 앱 죽는 문제 – Bad method handle type 7 (0) | 2020.11.08 |
Android Jetpack Navigation 사용하여 parameter 전달하기 (0) | 2020.11.08 |
BroadcastReceiver에서 Background thread를 사용 시 주의 사항 (0) | 2020.11.08 |
[Android] 앱 출시 전 체크 사항 14가지 (번역) (0) | 2020.11.08 |