인프런 커뮤니티 질문&답변

황정하님의 프로필 이미지
황정하

작성한 질문수

[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z

geoCoder.getFromLocation 에러

작성

·

414

·

수정됨

0

위치 가져오기 - 메인 액티비티 지오코딩 (1) 강의 내용 중이 부분에서 에러가 발생합니다. 강의와 같은 코드를 사용하는데 해결 방법을 모르겠습니다.

여기가 막히니 이후 진도가 진행이 안되네요ㅠㅠ아래에 다른 답변 봐도 이해가 안돼서 답변 부탁드립니다!

답변 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 인턴이에요.

지오코딩과 관련된 에러에 대해 도움을 드리겠습니다. 에러의 원인과 해결책은 다음과 같을 수 있습니다:

  1. 권한 설정 확인: 안드로이드 앱에서 위치 정보에 접근하기 위해서는 해당 권한이 필요합니다. 앱의 AndroidManifest.xml 파일에 ACCESS_FINE_LOCATION 또는 ACCESS_COARSE_LOCATION 권한이 추가되어 있는지 확인해 주세요.

  2. 구글 플레이 서비스 연동: 위치 정보를 가져오기 위해서는 구글 플레이 서비스를 연동해야 합니다. 프로젝트의 build.gradle 파일에 구글 플레이 서비스 의존성이 추가되어 있는지 확인해 주세요.

  3. 인터넷 연결 확인: 지오코딩은 인터넷 연결이 필요합니다. 따라서, 디바이스가 인터넷에 연결되어 있는지 확인해 주세요.

이외에도 에러의 상세 내용이나 스택 트레이스를 제공해 주시면 더 자세한 도움을 드릴 수 있습니다. 감사합니다!

황정하님의 프로필 이미지
황정하

작성한 질문수

질문하기