안드로이드 Wifi Socket 통신 시 신호가 약할 때 생기는 먹통딜레이 현상 해결방법


Android/안드로이드 프로그래밍 2011. 11. 28. 19:24



Socket통신으로 프로그래밍을 했을 때 핸들러가 제대로 먹히지 않고 신호가 약한 와이파이가 잡혔을 경우 소켓통신을 하다 가만히 휴대폰이 6초가량 검은 화면이 되었다가 진행이 되는 경우에는, (에러메시지에 lock 어쩌구 저쩌구 뜬다는,,,)

자답입니다. 기본적으로 socket을 이용 했을 시에는 동기화 방식으로 접속을 하는데

이 때 백단 또는 Thread를 이용하지 않으면 UI가 멈춰버립니다. 구현방식을 바꾸어야 할 것 같습니다




위의 답이 정답이구요. 저같은 경우는 특정 와이파이 지역 내에서 특정 공유기만을 상대로 하는 어플의 경우 이기 때문에, Wifi.getRSSi()[WifiInfo Wifi]를 사용했습니다. RSSI는 와이파이의 수신감도를 아날로그에서 디지털화 시킨 감도 수치로 - ( ) 로 나타나게 됩니다. WifiInfo 메서드를 통해서 받아올 경우 현재 연결되어 있는 와이파이의 감도 세기가 ()가 낮을 수록 신호가 약하단 의미로, 너무 약한 신호가 잡힌 경우에는 Toast를 띄우거나 아니면 다음 액티비티로 넘어가는 등의 조치를 취할 수가 있습니다.

Wifi안에 재미있는 게 많은데, WifiInfo.getSSID 로 공유기 현재 이름까지도 받아올 수 있더군요 ! 와이파이 관련 어플 제작하시는 분들은 참고하세요~!

PS - 저같은 경우는 감도 -61 정도로 주었습니다. 미약한 '한개정도'뜨는 와이파이 신호가 -65, -70 정도 되더군요~!
삼성전자 갤럭시 S20 플러스 자급제폰, 코스믹 그레이, 256GB Apple 에어팟 프로 (노이즈캔슬링 방수 블루투스 5), MWP22KH/A, 단일 색상 삼성전자 갤럭시탭S6 10.5 128G WIFI, SM-T860N, 마운틴 그레이

WRITTEN BY
ShakeJ

트랙백  0 , 댓글  0개가 달렸습니다.
secret