정시마다 와이파이를 연결하여 작업을 수행하는 안드로이드 어플을 수정중입니다. 기존 어플은 와이파이 연결시마다 addNetwork 수행하고 enableNetwork를 통해 연결했습니다.
근데 와이파이 접속 시 간간히 인증오류가 발생해 소스를 전면 수정하고자 합니다.
원래 와이파이 인증오류란 비밀번호 틀렸을때 나타나는걸로 알고있는데,
비밀번호는 컨피그파일 별도로 저장해놓고 받아와서 쓰는거라 틀릴수가 없는데도 발생합니다.
1. addNetwork와 enableNetwork 두가지 함수만으로 수행하던 연결 루틴을
WifiManager.addNetwork(wfc);
WifiManager.disconnect();
WifiManager.enableNetwork(id, true);
WifiManager.reconnect();
위와 같이 네단계 과정으로 변경하였는데요.
기존의 addNetwork와 enableNetwork만 쓰던 루틴이
와이파이 인증오류와 연관이 있을까요?
있다면, 새로운 루틴은 인증오류가 발생하지 않을까요?
2. 와이파이의 현재 상태를 방송으로 수신하여 상태에 따른 재연결이나 기타등등의 동작을 하고싶습니다.
동적 리시버로 생성하고자 하는데, 리시버 생성하고 레지스트하는건 알겠지만
addAction에서 추가해야할 네트워크 관련 액션이 너무 많고 다 비슷해보여서
각각 어떤 방송을 수신하는지 잘 이해가 안갑니다.
WifiManager.NETWORK_STATE_CHANGED_ACTION
WifiManager.WIFI_STATE_CHANGED_ACTION
WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION
WifiManager.SUPPLICANT_STATE_CHANGED_ACTION
ConnectivityManager.CONNECTIVITY_ACTION
다 비슷비슷해 보이고.. 어느게 얼마큼의 범위인지, 무슨 방송을 수신하는지 잘 이해가 안갑니다.
위의 액션들에 대해서 설명좀 해주세요 ㅠㅠ
최종적으로 브로드캐스트 리시버를 통해 와이파이 상태변화 방송을 수신하여서
(1) 와이파이의 연결 과정 변화(인증, IP할당 등)
(2) 와이파이의 연결상태(완벽히 연결됐는지)
(3) 와이파이 연결 실패시 이유(인증오류, 와이파이가 범위내에 없음 등)
이런것들을 구분하고자 한다면, 어떤 액션들을 필터로 취해야 하나요?
위에 나오지 않은 액션도 있다면 도움부탁드립니다.
이것때문에 며칠을 헤매는지 모르겠습니다 ㅠㅠ