안드로이드 개발 질문/답변
(글 수 45,052)
지금 사용하고 잇는 소스가 구글에서 검색해서 나오는 소스를 사용하고 있습니다.
URL myFileUrl03 = null; // URL 타입의 myFileUrl을 NULL로 초기화 시켜줍니다.
try {
myFileUrl01 = new URL(fileUrl01); // 파라미터로 넘어온 Url을 myFileUrl에
// 대입합니다.
} catch (MalformedURLException e) // 예외처리를 해줍니다.
{
// Todo Auto-generated catch block
e.printStackTrace();
}
try {
// 실질적인 통신이 이루어지는 부분입니다.
// myFileUrl 로 접속을 시도합니다.
HttpURLConnection conn01 = (HttpURLConnection) myFileUrl01.openConnection();
conn01.setDoInput(true);
conn01.connect();
int length01 = conn01.getContentLength(); // 받아온 컨텐츠의 길이를 length 변수에
// 저장합니다.
InputStream is01 = conn01.getInputStream(); // InputStream is 변수에
// 받아온 InputStream을
// 저장합니다.
FlushedInputStream flushedInputStream = new FlushedInputStream(is01);
bitImg01 = BitmapFactory.decodeStream(flushedInputStream); // 받아온 이미지를 bmImg에
// 넣어둡니다.
imgImg01.setImageBitmap(bitImg01);
} catch (IOException e) // 예외처리를 해줍니다.
{
e.printStackTrace();
}
이런 소스를 사용 하고 있는데요..
wifi에서는 아주 잘 가지고 옵니다..
그런데 3G모드에서는 불러 오지를 못하는데요...
사진파일 크기 문제인가 해서 11kb짜리로도 실험해 봤는데요...
여전히 받아 오지를 못하네요...
혹시 3G모드 문제인가 해서 웹뷰로 해서 불러 오니 잘 불러와 지구요..
다운로드 하는 방식으로 3G모드에서 불러오게 할수 있는 방법이 없을까요..?
2011.02.28 10:18:50
못불러오는 이유가 있겠죠..
디버깅 모드나 로그를 보시고 예외가 발생하는지 봐보세요.
다운로드 하는 방식에 있어서 wifi 나 3g 나 차이가 없습니다.
2011.02.28 10:26:50
3G일때 뜨는 System.err이
02-28 10:25:24.671: WARN/System.err(3842): java.net.SocketException: The operation timed out
02-28 10:25:24.725: WARN/System.err(3842): at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(Native Method)
02-28 10:25:24.729: WARN/System.err(3842): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(OSNetworkSystem.java:115)
02-28 10:25:24.737: WARN/System.err(3842): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:244)
02-28 10:25:24.745: WARN/System.err(3842): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:533)
02-28 10:25:24.753: WARN/System.err(3842): at java.net.Socket.connect(Socket.java:1074)
02-28 10:25:24.757: WARN/System.err(3842): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62)
02-28 10:25:24.757: WARN/System.err(3842): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88)
02-28 10:25:24.760: WARN/System.err(3842): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927)
02-28 10:25:24.760: WARN/System.err(3842): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909)
02-28 10:25:24.764: WARN/System.err(3842): at com.android.ubiomed.Main.downloadFile(Main.java:135)
02-28 10:25:24.772: WARN/System.err(3842): at com.android.ubiomed.Main.onCreate(Main.java:66)
02-28 10:25:24.772: WARN/System.err(3842): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-28 10:25:24.776: WARN/System.err(3842): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
02-28 10:25:24.780: WARN/System.err(3842): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-28 10:25:24.784: WARN/System.err(3842): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-28 10:25:24.784: WARN/System.err(3842): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-28 10:25:24.784: WARN/System.err(3842): at android.os.Handler.dispatchMessage(Handler.java:99)
02-28 10:25:24.788: WARN/System.err(3842): at android.os.Looper.loop(Looper.java:123)
02-28 10:25:24.792: WARN/System.err(3842): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-28 10:25:24.796: WARN/System.err(3842): at java.lang.reflect.Method.invokeNative(Native Method)
02-28 10:25:24.796: WARN/System.err(3842): at java.lang.reflect.Method.invoke(Method.java:521)
02-28 10:25:24.800: WARN/System.err(3842): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
02-28 10:25:24.800: WARN/System.err(3842): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
02-28 10:25:24.800: WARN/System.err(3842): at dalvik.system.NativeStart.main(Native Method)
요헐게 소켓 타임아웃이라고 뜨는걸 확인 했었는데요...
이렇게 뜨는 이유가 궁금합니다..



