2012-06-02 3 views
2

Android의 DownloadManager을 사용하여 외부 파일 저장소 (SD 카드)의 폴더에 파일을 다운로드하는 앱이 있습니다. 정상적으로 정상적으로 작동하지만 다운로드가 완료되면 DownloadManager에서 파일을 휴지통으로 만드는 일부 소스가 있습니다. 소스 파일의 좋은 예입니다DownloadManager가 완료시 파일 삭제

http://traffic.libsyn.com/hdtvpodcast/HDTV-2012-06-01.mp3

그것은 어쩌면 문제는 libsyn.com에서 파일처럼 보이지만, 나는 긍정적 인 아니에요. DownloadManager가 파일 저장을 처리하는 방법을 변경하는 방법을 살펴 보았지만 클래스에서 옵션을 찾을 수 없습니다.

을 다운로드에 대한 URL 대기열 곳입니다 : 파일 위치이 사용하여 만들어집니다

request = new Request(Uri.parse(currUrl)); 
external = Uri.fromFile(externalFile); 
request.setDestinationUri(external); 
request.setVisibleInDownloadsUi(false); 
request.setNotificationVisibility(
    DownloadManager.Request.VISIBILITY_HIDDEN); 
currDownloadId = dm.enqueue(request); 

을 : 나는 DownloadManager.COLUMN_LOCAL_FILENAME를 쿼리 할 때이 같은 것으로 판명

Environment.getExternalStorageDirectory().getAbsolutePath() + 
    File.separator + "Podcatcher" + File.separator + "Feeds" + File.separator + 
    [int] + File.separator + [int] + [string extension]; 

DownloadManager의 열 :

/mnt/sdcard/Podcatcher/Feeds/19/225.mp3 

대부분의 파일 다운로드 후에도 괜찮지 만 계속 유지되지만이 경우에는 유지되지 않습니다. DownloadManager를 다운로드 한 후 DownloadManager를 강제로 파일을 떠날 수있는 방법에 대한 아이디어가 있습니까?

편집 : 다운로드 한 끝에 실패한 것으로보고 한 브라우저에서이 파일을 다운로드 할 때 독립형 다운로드 관리자를 사용할 때 언급하지 않았습니다. 아마도 유일한 해결책은 DownloadManager없이 처음부터 다운로드하는 것입니까? 코드를 따라하시기 바랍니다

+0

어쩌면'dm.query을()'시도 가능한 오류를'COLUMN_STATUS'와'COLUMN_REASON' 열을 확인? –

+0

상태를 확인하고 이에 따라 데이터베이스를 업데이트 할 때마다 그 작업을 수행하고 있습니다. 나는 불행하게도 0 이외의 것을 본다. 이 때문에 DownloadManager에서 나에게 버그가있는 것 같아요, 모든 것을 다운로드하기 위해 그것을 사용해야 할 것 같아요. 아직 처음부터 시도하지는 않았지만 마지막에 동일한 오류가 있는지 확인할 것입니다. –

+0

죄송합니다. 이유는 0입니다. 다운로드가 완료되면 상태는 8 (성공)입니다. –

답변

1

시도는 - 나를 위해 일한 :

request.setMimeType(application/octet-stream);