티스토리 뷰

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 그만 쓰고 싶네요.. ㅋ



댓글
댓글쓰기 폼