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

재철님의 프로필 이미지
재철

작성한 질문수

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

메인 액티비티 - 권한 기능 추가 (2)

Locationmanager로 타입캐스팅 실패 문의

작성

·

39

0

아래와 같이 타입캐스팅이 안되는 이유가 무엇일까요??

private fun isLocationServicesAvailable() : Boolean{
        // LocationManager로 타입캐스팅
        val locationManager = getSystemService(LOCALE_SERVICE) as LocationManager

        return (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)
    }

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

재철님의 코드에서 getSystemService(LOCALE_SERVICE) as LocationManager 부분에 문제가 있습니다. 여기서 사용하신 LOCALE_SERVICE는 위치 정보 관련 서비스가 아니라 지역 설정과 관련된 서비스를 얻기 위한 상수입니다. 위치 정보를 관리하는 LocationManager를 얻기 위해서는 Context.LOCATION_SERVICE 상수를 사용해야 합니다. 아래는 수정된 코드 예시입니다:

private fun isLocationServicesAvailable() : Boolean {
    // LocationManager로 타입캐스팅
    val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager

    return (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
}

Context.LOCATION_SERVICE를 사용하여 시스템 서비스를 정확하게 요청하면 LocationManager로의 타입 캐스팅이 성공적으로 이루어져야 합니다.

재철님의 프로필 이미지
재철

작성한 질문수

질문하기