와이파이 활성화 유무에 따라 UI로 보여주기

채현·2023년 10월 23일
0

안드로이드

목록 보기
31/37

메인액티비티에서 와이파이의 연결상태를 체크하여 아이콘으로 보여주고, 하위 프래그먼트에서 와이파이 연결이 안될 경우 다이얼로그를 띄워 접근이 불가능하도록 만들어야 했다.

네트워크 상태에 대한 이벤트를 받기 위해 ConnectivityManager.registerNetworkCallback(NetworkCallback)을 이용하기로 했다.
ConnectivityManager는 앱에 시스템 연결 상태를 알려준다.
콜백은 앱이 종료되기 전까지 모든 네트워크에 대한 알림을 받도록 등록된다.

이제 콜백 객체의 메소드 안에 onAvailable()일때와 onLost()일때 나누어서 예쁘게 작성하면 끝날것 같았는데...

하지만 동기식 ConnectivityManager 메서드는 호출 후 발생하는 일에 관해 앱에 알리지 않으므로 UI를 업데이트할 수 없습니다. 또한 네트워크 연결 끊김이나 네트워크 기능 변경에 따라 앱 동작을 조정할 수도 없습니다.

이것만으로는 즉각적으로 메인화면에 와이파이가 변경되는 상태를 알려줄 수가 없다는것이다...

안드로이드 네트워크 상태 감지 리스너 설정하기

위 블로그를 참고하여 상태를 모니터링하는 클래스를 만들고 상태에 runOnUiThread{}를 이용하여 메인화면에 보여줄 수 있게 만들었다.

굿굿

0개의 댓글