この問題を解決するために多くの試行錯誤を試みてきましたが、それ以上のオプションが不足しているようです。
シナリオ: HttpClient を使用して、サーバーでホストされている php ページに対して単純な HTTP POST トランザクションを実行する AsyncTask があります。これはテスト済みで、接続タイプが Wifi の場合は完全に正常に動作します。
問題: データ接続を EDGE に移行するとすぐに、データ転送が機能しません。次のエラーが表示されます。
java.net.SocketException: The operation timed out
これは通常、ローエンドのデバイスで発生します。データ接続が存在することを確認しました。ブラウザを使用すると正常に動作します。この問題は、Google マップなどのブラウザ以外のすべてのアプリケーションとは無関係のようです。Google プレイスもデータ転送を行うことができず、ホストが見つからない例外をスローしています。
これが接続が遅いためかどうかを確認するためにタイムアウトを増やしてみましたが、緩和はありません.
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 30000);
HttpConnectionParams.setSoTimeout(httpParameters, 30000);
HttpConnectionParams.setTcpNoDelay(httpParameters, true);
権限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>