2012-09-07 60 views
1

即時通訊使用kso​​ap2庫,工作正常,但當我使用Android 4.0和IM 3G,當我嘗試設置連接總是套接字關閉。 我讀的是關於連接保持活着,但我不知道如何設置此屬性。套接字只在網絡v4.0 ksoap2

有什麼想法?

回答

2

在庫源HttpConectionSE.java中設置屬性連接來保持活動的編譯包並使用。

0

Android 4.0不允許您在主線程上運行Internet通信。 前進AsyncTask

您瞭解更多here

或者,看看this question

+1

通過wifi工作正常,它只在3G。代碼在asyntask中。錯誤是因爲ksoap2使用conection作爲屬性關閉。 – rbrlnx

2

也許你已經太晚了四次,但我希望這將有助於未來的人們像我一樣到達這裏,在同樣的問題上變得瘋狂。

這是一個Android bug。一切工作正常與WiFi,但它在3G上崩潰。它發生在4.1上,但在4.2.2上沒有問題。

爲了解決它,你必須修改文件org.ksoap2.transport.HttpTransportSE(我已經擴展了新的一個並把它稱爲MyHttpTransportSE因爲我使用kso​​ap2組裝罐子)。 只需重寫方法公共無效調用(字符串的soapAction,信封的SoapEnvelope)註釋掉行:

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

當然,如果你使用SSL的工作,你需要擴展自己的HttpsTransportSE從您的新的MyHttpTransportSE

更多細節在這裏:https://groups.google.com/forum/#!searchin/ksoap2-android/closed/ksoap2-