안드로이드 개발 질문/답변
(글 수 45,052)
Socket통신을 하는데 WIFI가 켜져 있으면 정상적으로 잘 동작하는데 WIFI가 꺼져있고 3G가 켜져있을시는 되지가 않습니다.
에러가 발생하게 됩니다. 이유가 뭘까요?
java.net.SocketException: The operation timed out
2010.07.05 17:07:33
와이파이는 애드혹으로 내부ip를 입맞춰서 할수 있지만 3g는 ip를 잡는거부터가 고정이 아니고 외부ip를 쓰기에 그런거 아닐까요. 굳이한다면 웹에 기기의 mac어드레스 등록하는 일련의 클라우드 형식으로 제어가 가능힐거 같은데;;
2010.07.05 17:20:41
socket이 어렵다면 httpurlconnection을 이용해 보시면 어떨까요..
제가 해본 방법인데 servlet으로 connection에 반응하도록 해서 통신이 가능했습니다.
이거라면 3g도 괜찮을듯 싶습니다.
2010.07.06 09:25:47
ConnectivityManager 를 통해서 3G/WiPi의 연결 상태를 체크하고 연결되어 있지 않을때는 startUsingNetworkFeature(int networkType, String feature)을 사용해서 다시 연결을 해주어야 합니다.
연결시도에 대한 연결 성공은 ConnectivityManager.CONNECTIVITY_ACTION 브로드케스트로 통보됩니다.