私の Android アプリケーションでは、サーバーの要求と応答が一貫して頻繁に行われます。WiFi でアプリを起動すると、終了して 3G で再起動します。サーバーへの要求は IO 例外で失敗します。
観察: これは、いくつかの WiFi 範囲でのみ発生します。WiFi-3G への移行中、私の家では問題なく動作します。両方の WiFi (ホームとオフィス) は WPA/WPA2 セキュリティ プロトコルを使用しますが、異なる動作を示します。IO例外が発生したときに新しいソケットを作成しようとしましたが、役に立ちませんでした。しかし、10〜15分後には正常に機能します。アプリは自動的に適切なネットワークに接続し、アプリが起動します!!
ここで何が問題になる可能性がありますか?
ここにコードのスニペットがあります
public String readFromUrl(String urlString) {
try {
URL url = new URL(urlString);
urlConnection = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = in.readLine()) != null)
output.append(line);
return output;
} catch (IOException e) {
e.printStackTrace();
}
}
例外で失敗します:
java.net.SocketTimeoutException: Connection timed out
W/System.err( 2615): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method)
W/System.err( 2615): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357)
W/System.err( 2615): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:204)
W/System.err( 2615): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:437)
W/System.err( 2615): at java.net.Socket.connect(Socket.java:1002)
W/System.err( 2615): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
W/System.err( 2615): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)