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
'Android > Trouble Shooting' 카테고리의 다른 글
[Android] Compose - layout error (0) | 2023.12.29 |
---|---|
[Android] 앱 출시 후 카카오 맵이 보이지 않는 현상 (0) | 2023.11.22 |
[Android] LifeCycle 관련 (0) | 2023.08.15 |
[!] ClassCastException (0) | 2023.08.03 |