이 문제를 해결하기 위해 많은 시행 착오를 시도했지만 더 많은 옵션이 부족한 것으로 보입니다.EDGE에서 데이터 전송을 수행 할 수 없습니다.
시나리오 : 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>