Apple is Apple
article thumbnail

GPS 상태 확인

원인

기기의 GPS가 꺼져 있을 떄, 위치 권한을 획득하여 좌표를 구할 떄 null 값이 발생해 앱이 꺼지는 현상이 있었다.

GPS가 켜져 있지 않은데, 좌표를 가져오려다 보니 생기는 현상이였다.

해결 과정

해결하기 위해 위치 권한을 가져오기 전에 GPS 상태를 확인 할 필요가 있었다.

 

그래서 먼저, GPS 가 켜져있는지 확인하는 변수를 두었다.

그리고 앱을 시작할 때 checkGPSStatus라는 메소드를 만들어 GPS 상태를 확인했다.

GPS 상태는 LocationManager의 isProviderEnabled(LocationManager.GPS_PROVIDER)를 통해 확인 할 수 있었다.

isGpsOn 변수를 이용하여 위치를 가져오기 전 isGpsOn 값을 확인한다.

만약 GPS가 켜져 있지 않다면, 암시적 인텐트 (Settings.ACTION_LOCATION_SOURCE_SETTINGS) 를 통해 GPS를 켜는 화면으로 이동하여 GPS를 켤 수 있게 한다. (return을 통해 좌표획득은 진행하지 않는다.)

 

GPS 설정 액티비티에서 돌아왔을 떄, 다시 로직을 진행해야 하니, onResume 메소드에서 다시 한번 확인하고 좌표를 가져오는 메소드를 실행 시킨다.

 

이렇게 LocationManager를 통해 해결을 해볼 수 있었다.

참고자료

 

안드로이드(Android) - Gps On Off 확인 (위치 서비스 활성화)

[OverView] 간혹 블루투스나 사용자의 위치정보를 가져와야할때 위치 서비스를 활성화 시켜야 하는데요. 이번시간에는 사용자의 위치 서비스가 활성화 여부를 체크하는 방법에 대해 알아 보겠습

jae-young.tistory.com

 

 

LocationManager  |  Android Developers

 

developer.android.com

 

profile

Apple is Apple

@mjjjjjj