PhoneGap 을 사용하고 있습니다.
아이폰에서는 정상작동하는데, 안드로이드에서 FileTransfer 의 download 를 사용시 원래 용량의 두 배가 다운되는 문제가 있습니다. stream 만 그렇게 진행되고 실제 파일은 원래 사이즈로 저장됩니다.
이 부분에 대해 거의 하루종일 검색해서 해결책을 찾았네요..
일단 apache cordova 쪽에 이슈 보고가 되어 있던 문제였습니다. 단, 아직 해결이 안되었네요..
간단한 코드인데, 왜....?
https://issues.apache.org/jira/browse/CB-3520
위 링크에서 관련 내용 확인할 수 있습니다.
사용하고 계신 cordova 버젼의 소스코드를 받으셔서 FileTransfer.java 의 코드를 수정하면 됩니다.
저는 2.9.0 버젼을 사용하고 있고요,
166번 라인에 있는 public int read(byte[] buffer) throws IOException 메소드를 주석처리 하시면 됩니다.
이유는
The reason is the read(byte[] buffer) redirects to read(byte[] bytes, int offset, int count)
즉, read(byte[] buffer) 에서 inner call을 쓰고 있기 때문입니다.. 메소드 오버로딩 참 어렵죠~ 상속관계도 생각해야하고요..
저와 같은 문제로 고민하신 분이 있으시다면 잘 해결되셨길..
이게 Cordova 3.0 에서는 고쳐졌을지 모르겠네요... 쉽게 발견 할 수 있는 오류인데, 왜 아직 해결이 안되었는지 의문입니다... 사람들이 download 를 잘 안쓰나..?
PhoneGap 그만 쓰고 싶네요.. ㅋ
'프로그래밍' 카테고리의 다른 글
yarn execution policies (policy) 오류 처리방법 (0) | 2023.02.09 |
---|---|
리눅스 offline 으로 인터넷 연결 없이 PostgreSQL DB 설치하기 (0) | 2022.12.13 |
NSString 의 lastIndexOf 사용하기(글자 자르기) (0) | 2012.03.30 |
PhoneGap - 레이아웃 변경하기 (Layout Custom) (1) | 2012.02.22 |
윈도우 xp image (0) | 2011.09.01 |