1

Android 4.2 にアップグレードした Samsung Galaxy S でアプリケーションを開発しています。アプリケーションはこのデバイスで正常に実行されます。

Android 2.2 を実行している電話でテストすると、例外が発生します。

何度も確認したところ、アプリケーションが UDP DatagramPacket を送信した後に問題が発生することがわかりました。

UDP DatagramPacket の送信に関するコードをコメントしても、問題は発生しません。

誰か理由を教えてください。問題を解決するには?

主な方法:</p>

 public static String getDataFromServerInPostMethod(String url,
        String content) {
    HttpURLConnection httpurlconnection = null;

    String result = "";
    try {
        InputStream stream = null;
        // String host = android.net.Proxy.getDefaultHost();
        // if (host != null) {
        // int port = android.net.Proxy.getDefaultPort();
        // SocketAddress vAddress = new InetSocketAddress(host, port);
        // java.net.Proxy vProxy = new java.net.Proxy(
        // java.net.Proxy.Type.HTTP, vAddress);
        // httpurlconnection = (HttpURLConnection) new URL(url)
        // .openConnection(vProxy);
        // } else {
        // httpurlconnection = (HttpURLConnection) new URL(url)
        // .openConnection();
        // }
        httpurlconnection = (HttpURLConnection) new URL(url)
                .openConnection();
        httpurlconnection.setDoOutput(true);
        httpurlconnection.setRequestMethod("POST");
        // httpurlconnection.setRequestProperty("Connection", "Keep-Alive");
        httpurlconnection.setReadTimeout(TIMEOUT * 1000);
        httpurlconnection.setConnectTimeout(TIMEOUT * 1000);
        try {
            httpurlconnection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        httpurlconnection.connect();
        MyLog.e(TAG, "getURL:" + httpurlconnection.getURL());
        httpurlconnection.getOutputStream().write(content.getBytes());
        httpurlconnection.getOutputStream().flush();
        httpurlconnection.getOutputStream().close();
        stream = httpurlconnection.getInputStream();
        result = SystemUtil.convertStreamToString(stream);
        if (httpurlconnection.getResponseCode() == 200) {
            MyLog.w(TAG,
                    "Responsed-->>getURL:" + httpurlconnection.getURL());
        } else {
            MyLog.e(TAG,
                    "not Responsed,ResponseCode:"
                            + httpurlconnection.getResponseCode());
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (httpurlconnection != null) {
            httpurlconnection.disconnect();
        }
    }
    return result;
}
4

1 に答える 1

0

AndroidManifest.xml ファイルにこの権限がありますか?

<uses-permission android:name="android.permission.INTERNET" />
于 2013-09-06T03:47:25.680 に答える