작성
·
414
·
수정됨
답변 2
0
private fun updateUI(){
locationProvider = LocationProvider(this@MainActivity)
var latitude : Double? = locationProvider.getLocationLatitude()
var longitude : Double? = locationProvider.getLocationLongitude()
if(latitude != null || longitude != null){
//1. 현재 위치를 가져오고 UI를 Update
val address = getCurrentAddress(latitude!!, longitude!!)
address?.let{
binding.tvLocationTittle.text = "${it.thoroughfare}"
binding.tvLocationSubtittle.text = "${it.countryName} ${it.adminArea}"
}
//2. 미세먼지 농도 가져오고 UI를 Update
}else {
Toast.makeText(this,"위도, 경도 정보를 가져올 수 없습니다.",Toast.LENGTH_LONG).show()
}
}
private fun getCurrentAddress(latitude : Double, longitude : Double) : Address?{
val geocoder = Geocoder(this, Locale.KOREA)
val addresses : List<Address>
try {
addresses = geocoder.getFromLocation(latitude, longitude, 7)!!
}catch (ioException : IOException){
Toast.makeText(this,"geocoder 서비스를 이용불가 합니다.",Toast.LENGTH_LONG).show()
return null
}catch (illegalArgumentException : java.lang.IllegalArgumentException){
Toast.makeText(this,"잘못된 위도, 경도 입니다.",Toast.LENGTH_LONG).show()
return null
}
if(addresses == null || addresses.size == 0){
Toast.makeText(this,"주소를 찾을 수 없습니다.",Toast.LENGTH_LONG).show()
return null
}
return addresses[0]
}
0
안녕하세요 황정하 님, 인프런 AI 인턴이에요.
지오코딩과 관련된 에러에 대해 도움을 드리겠습니다. 에러의 원인과 해결책은 다음과 같을 수 있습니다:
권한 설정 확인: 안드로이드 앱에서 위치 정보에 접근하기 위해서는 해당 권한이 필요합니다. 앱의 AndroidManifest.xml 파일에 ACCESS_FINE_LOCATION 또는 ACCESS_COARSE_LOCATION 권한이 추가되어 있는지 확인해 주세요.
구글 플레이 서비스 연동: 위치 정보를 가져오기 위해서는 구글 플레이 서비스를 연동해야 합니다. 프로젝트의 build.gradle 파일에 구글 플레이 서비스 의존성이 추가되어 있는지 확인해 주세요.
인터넷 연결 확인: 지오코딩은 인터넷 연결이 필요합니다. 따라서, 디바이스가 인터넷에 연결되어 있는지 확인해 주세요.
이외에도 에러의 상세 내용이나 스택 트레이스를 제공해 주시면 더 자세한 도움을 드릴 수 있습니다. 감사합니다!