안드로이드에서 와이파이의 인터넷 접속을 감지할 수 없는 상황에서 자동 연결이 효력을 상실하는 문제와 대응 방법

1725 단어 Androidwifitech
안드로이드 터미널에서 Wi-Fi를 연결할 때 특정 접속점에 자동으로 연결되는 설정을 enable로 설정해도 이 AP가 인터넷에 연결되지 않으면 자동으로 연결되지 않습니다.

이런 상태
이것은 업무용 청진사 설비로 실행되는 안드로이드가 다른 단말기와 로컬 네트워크 내에서 통신하는 상황에서 수동으로 다시 연결하지 않으면 문제가 거의 발생하지 않을 수 있다.통신 실패가 발생할 수 있습니다.운용 관점에서 볼 때 수동 재연결의 번거로움을 최대한 줄여야 한다.

대책


간단하지만, 아래의 adb 명령을 실행하고 터미널을 다시 시작해서 해결할 수 있습니다. (안드로이드 11을 통해 확인했습니다.)
// Android 7 以降
$ adb shell settings put global captive_portal_mode 0

// Android 6 以前
$ adb shell settings put global captive_portal_detection_enabled 0
이 설정을 복원하려면 다음 명령을 실행합니다.
// Android 7 以降
$ adb shell settings put global captive_portal_mode 1

// Android 6 以前
$ adb shell settings put global captive_portal_detection_enabled 1

무슨 일이 있었는지


상기 명령에서 Captive Portal Detection를 무효화시켜 자동 연결이 불가능한 문제를 처리했지만 원본Captive Portal Detection이 무엇인지 의문이 남아 있다.
그것에 관해서 아래의 보도는 매우 상세하다.
https://ao780.hateblo.jp/entry/2017/02/21/112233
이 글에 따르면 터미널이 모든 접속점에 연결될 때 특정한 웹 페이지를 방문해서 AP가 인터넷에 접속할 수 있는지 확인합니다이러한 구조는 iOS와 안드로이드(Android의 경우 Google 서버 내에 응답 코드204만 회신하는 웹 페이지가 존재하며 그 응답에 따라 이 같은 내용을 판정한다.이 장치는 Captive Portal Detection로 불리는데, 여기서 인터넷 접속이 없는 것으로 판단되는 AP는 자동 접속 대상에서 제외된다.

참고 자료


https://github.com/ukanth/afwall/issues/761

좋은 웹페이지 즐겨찾기