2012-09-07 5 views
1

메신저 ksoap2 라이브러리를 사용하여 잘 작동하지만 안드로이드 4.0과 3G를 통해 IM을 사용할 때 연결을 항상 설정하려고 할 때 소켓이 항상 닫힙니다. 나는 연결 유지에 대해 읽었지만,이 속성을 설정하는 방법을 모른다.소켓이 네트워크에서만 닫혔습니다. ksoap2

아이디어가 있으십니까?

답변

2

라이브러리 소스에서 HttpConectionSE.java는 연결 유지 패키지에 대한 속성 연결을 설정하고 패키지를 사용합니다.

0

Android 4.0에서는 주 스레드에서 인터넷 통신을 실행할 수 없습니다. 다음으로 이동하십시오 AsyncTask

자세히 알아보기 here.

또는 this question을 살펴보십시오.

+1

가 유일한 3G에서 잘 작동합니다. 코드는 asyntask에 있습니다. 이 오류는 ksoap2가 연결을 속성으로 사용했기 때문에 발생합니다. – rbrlnx

2

어쩌면 너무 늦은 네 네,하지만이 사람이 나처럼 여기에 도달하는 미래의 사람들에게 똑같은 문제로 미친 듯이 도움이되기를 바랍니다.

이것은 Android 버그입니다. 모든 것이 WiFi로 제대로 작동하지만 3G에서 충돌합니다. 4.1에서 나에게 일어났지만 4.2.2에서는 아무런 문제가 없었다.

그것을 해결하기 위해, 당신은 파일 org.ksoap2.transport.HttpTransportSE을 수정해야 (나는 새를 확장 한 내가 ksoap2 어셈블리 항아리를 사용하고 있기 때문에 MyHttpTransportSE라고도 함). 당신은 SSL로 작업하는 경우, 당신은 당신의 자신의 HttpsTransportSE을 확장해야합니다 물론

//connection.setRequestProperty("Connection", "close"); 

: 그냥 라인을 주석 방법 공공 무효 전화 (문자열의 soapAction,의 SOAPEnvelope 봉투)를 오버라이드 (override) 새 주소 : MyHttpTransportSE 여기

자세한 내용 : 무선 랜으로 https://groups.google.com/forum/#!searchin/ksoap2-android/closed/ksoap2-